我正在制作一个Chrome扩展程序,它应该替换某些单词。问题是它不会取代包含Č,Ć,Ž,Đ或Š等塞尔维亚拉丁字符的单词。这是我的代码:
var exprs = [
//Example
[/\bČ\b/g, "Ć"],
]
function replaceTextInNode(node) {
var value = node.nodeValue
var expr
for (expr of exprs) {
value = value.replace(expr[0], expr[1])
}
node.nodeValue = value
}
function walk(node) {
var child, next
switch (node.nodeType) {
case 1: // element
case 9: // document
case 11: // fragment
child = node.firstChild
while (child) {
next = child.nextSibling
walk(child)
child = next
}
break
case 3: // text
replaceTextInNode(node)
break
}
}
document.addEventListener("DOMContentLoaded", function(e) {
walk(document.body)
})
document.addEventListener("DOMNodeInserted", function(e) {
walk(e.target)
})
所有内容都保存为UTF8
代码基于:Javascript Regex to replace text NOT in html attributes
提前感谢大家。