我正在尝试解析由&
或分隔的键=值对组成的 url 编码字符串&
。
以下将仅匹配第一次出现,将键和值分解为单独的结果元素:
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 的正则表达式支持来匹配多次出现的/(?:&|&)?([^=]+)=([^&]+)/
类似于 PHPpreg_match_all()
函数的模式?
我的目标是通过某种方式获得子匹配的结果,例如:
[['1111342', '348572'], ['Adam%20Franco', 'Bob%20Jones']]
或者
[['1111342', 'Adam%20Franco'], ['348572', 'Bob%20Jones']]