相关疑难解决方法(0)

如何在JavaScript中使用类似于PHP的preg_match_all()的正则表达式匹配多次出现?

我试图解析是由由两种分离的key = value对的URL编码的字符串&&.

以下内容仅匹配第一次出现,将键和值分解为单独的结果元素:

var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/)
Run Code Online (Sandbox Code Playgroud)

字符串'1111342 = Adam%20Franco&348572 = Bob%20Jones'的结果将是:

['1111342', 'Adam%20Franco']
Run Code Online (Sandbox Code Playgroud)

使用全局标志'g'将匹配所有匹配项,但仅返回完全匹配的子字符串,而不是分离的键和值:

var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/g)
Run Code Online (Sandbox Code Playgroud)

字符串'1111342 = Adam%20Franco&348572 = Bob%20Jones'的结果将是:

['1111342=Adam%20Franco', '&348572=Bob%20Jones']
Run Code Online (Sandbox Code Playgroud)

虽然我可以&单独拆分字符串并分别拆分每个键/值对,但有没有办法使用JavaScript的正则表达式支持来匹配模式的多次出现,/(?:&|&)?([^=]+)=([^&]+)/类似于PHP的preg_match_all()函数?

我的目标是通过某种方式获得结果,子匹配分开如下:

[['1111342', '348572'], ['Adam%20Franco', 'Bob%20Jones']]
Run Code Online (Sandbox Code Playgroud)

要么

[['1111342', 'Adam%20Franco'], ['348572', 'Bob%20Jones']]
Run Code Online (Sandbox Code Playgroud)

javascript regex

157
推荐指数
6
解决办法
23万
查看次数

标签 统计

javascript ×1

regex ×1