我想我不是很擅长正则表达式,所以这是我的问题(我确定它很容易解决,但不知何故我似乎无法找到)
var word = "aaa";
text = text.replace( new RegExp(word, "g"),
"<span style='background-color: yellow'>"+word+"</span>");
这在大多数情况下都有效。
我想要做的是正则表达式只能在单词后面没有字符 / ,而不是字符 之前。
答案 0 :(得分:11)
你会想要使用负面预测。
正则表达式:'[^"]' + word + '(?!/)'
编辑:虽然它看起来没关系,但是你已经通过避免后视找到了你的答案,Rohit发现了一些我没有注意到的东西。您将需要捕获[^ \“]并将其包含在替换中,以便它不会被丢弃。 这对于后视头来说不是必需的,因为根据定义,环视不会包含在捕获中。
答案 1 :(得分:2)
您可以使用此正则表达式: -
'([^"])' + word + '(?!/)'
并将其替换为 - "$1g"
请注意,Javascript不支持后台广告。因此,您需要使用否定的字符类捕获前一个字符并确保它不是"
。