javascript - RegEx 用原生 JS 分割查询字符串

标签 javascript regex

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/

相关文章:

python - 使用正则表达式检查并保存电话号码

java - 使用正则表达式分割字符在java中返回空值

javascript - 我需要启用 CSRF 保护吗?

regex - 匹配包含 *N* 次特定字母的单词

javascript - 检测设备并交换 CSS 文件 - jQuery

javascript - Asp.net Mvc使用ajax上传多个文件出现一些错误

javascript - 使用函数构建 ES6 模板字面量

javascript - 为什么 "abcdef"没有被(?=abc)def匹配到,却被abc(?=def)匹配到了?

javascript - Google map 标记未使用 ajax json 数据显示

javascript - JS/JQuery - 拆分和映射逗号分隔的字符串并根据值连接结果