我需要找到匹配的数量以及替换匹配的出现次数。案例不敏感。此外,我需要使用变量而不是实际的字符串,以便我可以重用逻辑。
示例文字:她的丈夫带领整个南欧的国内商业审计团队并向她汇报。
预期结果
数: 2
结果文字 应" xxx丈夫领导南欧的国内业务审核小组并向xxx报告。"
注意'她'在南方被忽略了。
var testdata = "Her Husband leads in-country business audit teams across Southern Europe and reports to her.";
var searchstring = thisarray[i]; // e.g.: "her";
var search_regexp = new RegExp(searchstring, "\g\i");
var count = testate.match(search_regexp).length;
var resulttext = testdata.replace(search_regexp,"xxx");
我的做法并不合适,因为它也在南方找到了她。我在这里做错了什么?
答案 0 :(得分:3)
你的var searchstring
只是一个简单的她,所以它会找到任何以h e r
为顺序的东西,在前后添加空格,或者更好的是,边界\b\
所以看起来应该是这样的:\bher\b
编辑:
使用它:
var a_word = "her";
var searchstring = '\\b' + a_word + '\\b';
var search_regexp = new RegExp(searchstring, "gi");
var match1 = testdata.match(search_regexp);
您需要\\b
的原因是因为\\
之后转移到\
,这使得\b
。
这是显示RegExp且没有RegExp的jsfiddle:https://jsfiddle.net/1r2jyodo/1/