为什么当匹配字符串只存在一个匹配时,此匹配会返回两个相同的匹配项?
/^(.*)$/m
<textarea id="input">one two three four five
1111 2222222 333 444444 555
1111 2222222 333 444444 555
1111 2222222 333 444444 555
1111 2222222 333 444444 55</textarea>
var str = $("#input").val();
var arr = str.match(/^(.*)$/m);
console.dir(arr);
/*
Array[2]
0: "one two three four five"
1: "one two three four five"
index: 0
input: "one two three four five↵1111 2222222 333 444444 555↵1111 2222222 333 444444 555↵1111 2222222 333 444444 555↵ 1111 2222222 333 444444 55"
*/
答案 0 :(得分:4)
你没有两场比赛。数组中的第一个条目是整个匹配,第二个条目是第一个捕获组的结果(偶然是整个匹配)。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
如果正则表达式不包含g标志,则返回 与regexp.exec(字符串)相同的结果。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec
返回的数组将匹配的文本作为第一项,然后 每个捕获括号的一个项目匹配包含 被捕获的文字。