如何将多个实例与 JavaScript 中的正则表达式进行匹配,类似于 PHP 的 preg_match_all()?
2022-08-30 02:24:39
我正在尝试解析由键=值对组成的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的正则表达式支持来匹配类似于PHP函数的模式的多次出现?&
/(?:&|&)?([^=]+)=([^&]+)/
preg_match_all()
我的目标是通过某种方式获得结果,并将子匹配分开,例如:
[['1111342', '348572'], ['Adam%20Franco', 'Bob%20Jones']]
或
[['1111342', 'Adam%20Franco'], ['348572', 'Bob%20Jones']]