Javascript搜索字符串并返回匹配数

Javascript to search string and return number of matches

本文关键字:返回 串并 搜索 字符 字符串 Javascript      更新时间:2023-09-26

我有一个包含各种html标记的字符串。例如:

var str = "<div>My text is <a> here</a> and it is <a> very wonderful</a>.  For an example of how very great <a> my text is</a>. Please have a look</div>"

我想使用javascript string.replace()来替换仅不在标签(锚在这种情况下)内的单词。它还取决于用户输入,因此我需要在RegExp中包含一个变量。我首先使用string.match()进行测试;来验证我只得到一个匹配。

我借用了javascript regex的代码,用链接替换了一些单词,但不是在现有的链接中,只是切换了。replace到。match。所以我使用下面的代码:

var word = "very";
var regex = new RegExp("/" + word + "(?![^<]*?<'/a>)/g");
console.log(str.match(regex).length);

它返回给我TypeError: titleText.match(…)为空在我看来,没有找到匹配。但是,如果我像这样构建它:

console.log(str.match("/very(?![^<]*?<'/a>)/g").length);

我得到预期的结果数;在本例中,为1;

有什么建议吗?

在将正则表达式构建为字符串时不要包含斜杠:

var regex = new RegExp(word + "(?![^<]*?<'/a>)","g");