我试图解析由键 = 值对组成的、由 &
或 &
分隔的 url 编码字符串。
下面将只匹配第一个匹配项,将键和值分解为单独的 result 元素:
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/)
字符串“1111342 = Adam% 20Franco & 348572 = Bob% 20Jones”的结果将是:
['1111342', 'Adam%20Franco']
使用全局标志‘ g’将匹配所有匹配项,但只返回完全匹配的子字符串,而不返回分隔的键和值:
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/g)
字符串“1111342 = Adam% 20Franco & 348572 = Bob% 20Jones”的结果将是:
['1111342=Adam%20Franco', '&348572=Bob%20Jones']
虽然我可以在 &
上拆分字符串,并分解每个键/值对,但是有没有办法使用 JavaScript 的正则表达式支持来匹配多个类似于 PHP 的 preg_match_all()
函数的模式 /(?:&|&)?([^=]+)=([^&]+)/
?
我的目标是找到一些方法来获得结果,将子匹配分开,比如:
[['1111342', '348572'], ['Adam%20Franco', 'Bob%20Jones']]
或者
[['1111342', 'Adam%20Franco'], ['348572', 'Bob%20Jones']]