不能在我的chrome扩展中使用č和ć

时间:2016-07-19 15:35:28

标签: javascript google-chrome google-chrome-extension

我正在制作一个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

提前感谢大家。

1 个答案:

答案 0 :(得分:0)

尝试使用unicode转义字符,例如Č as \u010c。通常当我有奇怪的字符问题将它们转换为unicode解决它。