javascript正则表达式,单词未被跟随,并且没有特定的字符串

时间:2012-12-24 08:37:21

标签: javascript regex

我想我不是很擅长正则表达式,所以这是我的问题(我确定它很容易解决,但不知何故我似乎无法找到)

var word = "aaa";
text = text.replace( new RegExp(word, "g"),
                     "<span style='background-color: yellow'>"+word+"</span>");

这在大多数情况下都有效。

我想要做的是正则表达式只能在单词后面没有字符 / ,而不是字符 之前。

2 个答案:

答案 0 :(得分:11)

你会想要使用负面预测。

正则表达式:'[^"]' + word + '(?!/)'

编辑:虽然它看起来没关系,但是你已经通过避免后视找到了你的答案,Rohit发现了一些我没有注意到的东西。您将需要捕获[^ \“]并将其包含在替换中,以便它不会被丢弃。 这对于后视头来说不是必需的,因为根据定义,环视不会包含在捕获中。

答案 1 :(得分:2)

您可以使用此正则表达式: -

'([^"])' + word + '(?!/)'

并将其替换为 - "$1g"

请注意,Javascript不支持后台广告。因此,您需要使用否定的字符类捕获前一个字符并确保它不是"

请参阅http://fiddle.re/zdjt

上的演示