我有这个基本的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(?= |$)仅在单词时髦后接空格或行锚结尾时才匹配。

09-26 19:08