我正在使用 JavaScript,我需要一个正则表达式来匹配“foo”之间的所有内容。
当我使用以下字符串时。
&foo=test1&foo=test2&foo=test3%20test4
Run Code Online (Sandbox Code Playgroud)
它应该返回
match1: test1
match2: test2
match3: test3%20test4
Run Code Online (Sandbox Code Playgroud)
我尝试了以下表达式
((&foo=)(.*))*
Run Code Online (Sandbox Code Playgroud)
但不幸的是它返回了整个字符串。
如何改进我的正则表达式?
我建议使用内置URLSearchParams类,而不是完全使用正则表达式:
const params = new URLSearchParams('&foo=test1&foo=test2&foo=test3%20test4');
params.getAll('foo');
// ["test1", "test2", "test3 test4"]
Run Code Online (Sandbox Code Playgroud)
适用于所有主要浏览器。(如果这对您很重要,则需要 IE 11 的 polyfill。)