我正在尝试创建一个替换单词的所有实例的chrome扩展名。
到目前为止,我一直在使用它:
document.body.innerHTML = document.body.innerHTML.replace(new RegExp("Word", "g"), "replacement");
并且一切正常,虽然它也取代了网页上某些标签的文字,这会破坏网站的CSS。
我如何忽略标签?
答案 0 :(得分:2)
前瞻可能有用。如果您的“单词”是标记的一部分,那么最终将跟随“>”。因此,通过使用否定前瞻,您可以跳过这些。这将是你的正则表达式 -
/word(?![^<]*>)/g
将“单词”视为“head”,在此示例中替换为字符串的“tail” -
> str = "<head> <title> And off with your head! and other head references. </title></ head>"
> str.replace(/head(?![^<]*>)/g, "tail")
//"<head> <title> And off with your tail! and other tail references. </title></ head>"
请注意,<head>
和</head>
未被替换。