各位大佬帮忙看下????

var str='js js js js';
var pattern=/(js)/;//() 表示分组的意思
console.log(pattern.exec(str));
打印结果:
["js", "js", index: 0, input: "js js js js"],



我想问下,为什么打印的不是四个js 而是2个?


Coding青天
浏览 925回答 1
1回答

千秋此意

返回结果里的两个“js”不是同一个东西,其中第0项的“js”是正则匹配到的整个字符串,第1项的“js”是匹配结果里的第一个分组如果你想一次拿到所有能匹配到的结果建议用字符串的match方法var str='js js js js'; var pattern=/(js)/g; // 此处需要加上g标志,不然match也不能一次拿到所有匹配结果 console.log(str.match(pattern)); // => [ 'js', 'js', 'js', 'js' ]
打开App,查看更多内容
随时随地看视频慕课网APP