CPPAlien / JS-QA

前端知识问答
0 stars 0 forks source link

正则 exec 和 match 的区别 #5

Open CPPAlien opened 5 years ago

CPPAlien commented 5 years ago

string.match

/g 返回所有匹配的内容片段

"[22].[44].[33].".match(/\d+/g) 
["22", "44", "33"]

"[22]".match(/\d+/g)
["22"]

没有 /g, 找到第一个匹配的片段,并返回相对详细的片段位置信息。

"[22].[44].[33].".match(/\d+/)
["22", index: 1, input: "[22].[44].[33].", groups: undefined]

'[abc].[abc]'.match(/(ab)c/)
["abc", "ab", index: 1, input: "[abc].[abc]", groups: undefined]

regex.exec

和没有 /g 的 match 差不多,都能进行子匹配,数组的第一位输出全匹配的片段,后面依次输出子匹配的片段。

CPPAlien commented 5 years ago

在使用 new RegExp(’key=([\\w\\.]+);') 时,切记要用 两个 \\