我有这个基本的Chrome扩展程序,该扩展程序将'hipster'
的实例替换为'James Montour'
。但是,它将在整个body
中搜索这些实例,甚至替换URL中的单词,这会破坏图像和链接(显然)。我需要弄清楚如何防止这种情况,并且我对regex
不太满意。
这是我的代码:
$(document).ready(function() {
var replaced = $("body").html().replace(/hipster/gi, 'James Montour');
$("body").html(replaced);
});
我应该怎么做?
最佳答案
确切的单词将在第一个单词后跟一个空格,或者在最后一个单词前跟一个空格,或者在中间居中,然后是一个空格。以下正则表达式使用了此逻辑,
string.replace(/(^| )hipster(?= |$)/g, "$1James Montour")
DEMO
说明:
(^| )
捕获行的起始锚点或空格。hipster(?= |$)
仅在单词时髦后接空格或行锚结尾时才匹配。