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

时间:2014-03-26 01:47:27

标签: javascript regex string replace anchor

我有一个包含各种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 some words with links, but not within existing links借用了代码,只是将.replace切换为.match。所以我使用以下代码:

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

它回到我身边 TypeError:titleText.match(...)为null 这告诉我没有找到匹配。但是,如果我像这样构建它:

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

我得到了预期的结果数量;在这种情况下,1;

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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

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