替换字符串jQuery中最后出现的单词

时间:2015-09-15 17:03:32

标签: jquery regex replace

您好我试图替换字符串foo中最后一次出现的code。 值得一提的是foo是一个包含随机字符串的变量 - 需要将其解析为正则表达式。

$(target).html(code.replace(foo, replaced_text));

使用某种形状或形式的new RegExp()可能是一个很好的停靠点 - 虽然注入foo会产生意想不到的结果。

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:2)

使用*

的贪婪
$(target).html(code.replace(/(.*)foo/, "$1" + replaced_text));

如果foo是变量。

$(target).html(code.replace(new RegExp("(.*)" + foo), "$1" + replaced_text));

如果变量foo变量包含特殊字符。

> var foo = "$foo$"
> new RegExp("(.*)" + foo.replace(/(\W)/g, "\\$1"))
/(.*)\$foo\$/

答案 1 :(得分:0)

只需确保没有其他foo使用negative lookahead

$(target).html(code.replace(/foo(?!.*foo)/, replaced_text));

或者假设foo是一个变量:

$(target).html(code.replace(new RegExp(foo + "(?!.*" + foo + ")"), replaced_text));