我正在使用sammy.js,我已经知道如何将该网址“切割”成多个部分:<a href="#/label/drafts">drafts</a>
通过
this.get('#/label/:name', function(context) {
context.$element().append('<h1>' + this.params['name'] + '</h1>');
});
但是,如何剪切此复合URL?
<a href="#/label/drafts?a=1&b=2&c=love#a">How to solve this ? </a>
题 :
如何提取(萨米的方法):
a
的值(预期1
)b
的值(预期2
)c
的值(不带哈希)(预期的love
)c
的哈希(预期的a
)jsbin
n.b.我正在寻找sammy'js的方式(我显然可以通过纯JavaScript来剪切它,但再次,我想要sammy'js的方式-如果可能的话)
最佳答案
实际上,Sammy.js确实支持查询参数,因此您可以在URL中使用当前的大部分示例(有关示例,请参见my answer here)。出于不必要,它不支持URL中的#
。它将查询字符串定义为?
,后跟任意数量的非哈希字符(包括无)。这是由于这样的事实,像/index?param=foo#bar
这样的URL是一个有效的URL,它按照HTTP标准被拆分为:
如果Sammy在一组有效的查询参数字符中包括一个哈希字符,那么它将无法轻松识别有效URL上的哈希。但是,如果要对哈希进行URL编码,则可以在路由中使用它。
因此,总而言之,Sammy可以使您接近所需的内容,但是由于它如何定义查询参数,因此无法一路走到那里。
关于javascript - 分析sammy.js中的查询字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22808748/