我想在脚本中替换一些“ this”。

$(this).find('option').each(function() {

    $(this).hide();
})


是否可以仅替换外部的this或仅替换功能块内部的“ this”?我的主意行不通...

.replace(/([^{])\bthis\b([^}])/gm, $1replacement$2)


附录:第一个代码是作为字符串而不是JavaScript处理的!
我正在寻找一个正则表达式来仅替换外部的“ this”。

最佳答案

区分“外部”文本和“内部”文本的方法是,对于内部文本,下一个花括号为右括号,从而将其内的文本封闭。

因此,使用否定前瞻将this排除在块内:

str = str.replace(/\bthis\b(?![^{]*\})/gs, replacement);


还要注意替换术语的简化,因为匹配只是目标文本“ this”。

查看此正则表达式的live demo工作方式。

10-05 20:49
查看更多