使用jquery中的变量进行RegExp字匹配

时间:2016-09-11 23:21:22

标签: javascript jquery regex

我需要找到匹配的数量以及替换匹配的出现次数。案例不敏感。此外,我需要使用变量而不是实际的字符串,以便我可以重用逻辑。

示例文字:她的丈夫带领整个南欧的国内商业审计团队并向她汇报。

预期结果

数: 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");

我的做法并不合适,因为它也在南方找到了她。我在这里做错了什么?

1 个答案:

答案 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/