我想在脚本中替换一些“ 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工作方式。