您好我试图替换字符串foo
中最后一次出现的code
。
值得一提的是foo
是一个包含随机字符串的变量 - 需要将其解析为正则表达式。
$(target).html(code.replace(foo, replaced_text));
使用某种形状或形式的new RegExp()
可能是一个很好的停靠点 - 虽然注入foo
会产生意想不到的结果。
任何建议都将受到赞赏。
答案 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));