我正在尝试匹配一个单词,该单词前面、后面或两者都有空格。
var sample = " test-abc -test# @test _test hello-test@ test test "
与上例类似,第一个“测试”将被计数,因为它前面有一个空格,下一个不会被计数,因为它没有空格,第三个“测试”将被计数,因为它后面有一个空格,同样,第四个也是,第五个不会被计数,因为它前后都没有空格,最后两个将被计数,因为它们前后都有空格。
function countOccurences(str,word){
var regex = new RegExp("(\\b|(?<=_))"+word+"(\\b|(?<=_))","gi");
console.log((str.match(regex)|| []).length);
}
我编写的函数计算确切的单词数,但不考虑空格,所以我得到的输出为7,但我想要得到的是5。
var sample = " test-abc -test# @test _test hello-test@ test test ";
var asset = "test";
var regex = new RegExp("(?<=\\s)" + asset + "|" + asset + "(?=\\s)", "g");
这种方式可行吗? - souv21RegExp
,我认为你需要进行双重转义,因此请使用:var regex = new RegExp("(?<=\\s)"+asset+"|"+asset+"(?=\\s)", "g");
- Tim Biegeleisen/(?<=\s)test(?=[\W_])|(?<=[\W_])test(?=\s)/g
- Tim Biegeleisen