在 JavaScript 中:
var myString = "This is my string";
console.log(myString.split(/(\s)/));
输出 :["This", " ", "is", " ", "my", " ", "string"]
console.log(myString.split(/\s/));
输出 :["This", "is", "my", "string"]
为什么会出现这种情况?
您使用的两个正则表达式仅略有不同。
/(\s)/
有一个捕获组\s
,所以当与split()
它将把捕获组中找到的任何内容添加到数组中。
正则表达式/\s/
没有捕获组,所以split()
忽略匹配项并且不将它们添加到数组中。
同样,如果执行:
var myString = "This is my string";
console.log(myString.split(/(my)/)); //includes matched capture group in results
console.log(myString.split(/my/)); //ignores matches
将输出:
[“这是”,“我的”,“字符串”]
[“这是”,“字符串”]
希望有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)