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个?
1 回答
已采纳
千秋此意
TA贡献158条经验 获得超187个赞
返回结果里的两个“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' ]
添加回答
举报
0/150
提交
取消