我试图解析是由由两种分离的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) 我试图在另一个字符串中找到所有出现的字符串的位置,不区分大小写.
例如,给定字符串:
I learned to play the Ukulele in Lebanon.
和搜索字符串le,我想获取数组:
[2, 25, 27, 33]
Run Code Online (Sandbox Code Playgroud)
两个字符串都是变量 - 也就是说,我不能对它们的值进行硬编码.
我认为对于正则表达式来说这是一个简单的任务,但经过一段时间的努力找到一个可行的表达式之后,我没有运气.
我找到了如何使用这个实例的例子.indexOf(),但肯定有一个更简洁的方法来做到这一点?