正则表达式:除非url替换文本?

时间:2014-08-29 21:13:58

标签: javascript regex

我有这个基本的Chrome扩展程序,用'hipster'替换'James Montour'的实例。但是,它会在整个body中搜索这些实例,并在URL中替换该单词,这会破坏图像和链接(显然)。我需要弄清楚如何防止这种情况,并且我对regex不满意。

这是我的代码:

$(document).ready(function() {
  var replaced = $("body").html().replace(/hipster/gi, 'James Montour');
  $("body").html(replaced);
});

我该怎么办?

1 个答案:

答案 0 :(得分:0)

一个确切的单词将在第一个后跟一个空格,或者在最后一个空格之前或在中间,前面跟着一个空格。这个逻辑用在下面的正则表达式中,

string.replace(/(^| )hipster(?= |$)/g, "$1James Montour")

DEMO

<强>解释

  • (^| )捕获起始锚或空间的行。
  • hipster(?= |$)只有当行后跟空格或行锚的一端时才匹配单词。