window.location.search 在哪里
?foo=myFoo&fooAndBar=myFoo%26Bar;bar=myBar
什么正则表达式可以在查询分隔符处正确分割字符串?请注意,与号 (&
) 和分号 (;
) 都是 valid separators .
使用示例:
// slice() is used just to trim the leading "?"
window.location.search.slice(1).split(/ _WORKING_REGEX_ /);
>>> [object Array]:
[0] => "foo=myFoo",
[1] => "fooAndBar=myFoo&Bar",
[2] => "bar=myBar"
我找到了与符号的正确匹配,但没有找到分号的正确匹配:
/&(?!\w+;)/
编辑: T.J. Crowder 指出,我的错误在于使用 &
作为转义符号的原始 URL 编码,它会被正确编码为 %26
。鉴于此,正确的正则表达式更容易匹配
window.location.search.slice(1).split(/[&;]/)
这是我在更正之前发布的原始测试网址,供引用:
?foo=myFoo&fooAndBar=myFoo&Bar;bar=myBar
最佳答案
Note that ampersand (&) and semicolon (;) are both valid separators.
所以,嗯:
var pairs = queryString.split(/[;&]/);
?
或者,处理开头潜在的?
:
var pairs = queryString.replace(/^\??/, '').split(/[;&]/);
关于javascript - RegEx 用原生 JS 分割查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19282883/