【问题标题】:How do I replace all left apostrophes with javascript?如何用 javascript 替换所有左撇号?
【发布时间】:2012-03-02 05:49:04
【问题描述】:

抱歉,我对 Chrome 中出现的花哨的左撇号以及其他特殊字符有疑问。我试图用“ 全局替换“,但它不会,它从文档中删除了问号错误,但它也用左撇号替换了右撇号。然后它也破坏了我的javascript文本cufon脚本。这是我的代码。

document.addEventListener("DOMContentLoaded",replaceall);
function replaceall(){
    var content = document.getElementById("content");
    content.innerHTML = content.innerHTML.replace(/“/g,"“");

}

这是我正在处理的页面的链接:http://reachhighernow.com/?page=attunement

【问题讨论】:

  • 这可能是编码问题。文档是用什么编码编码的?
  • 这是文档类型。这是你想知道的吗?
  • 不是,文档的编码是浏览器对字符的解析方式,比如是utf8,ISO-whatever,什么?

标签: javascript html replace str-replace


【解决方案1】:

尝试在您的正则表达式中使用 unicode 值:

document.addEventListener("DOMContentLoaded",replaceall);
function replaceall(){
    var content = document.getElementById("content");
    content.innerHTML = content.innerHTML.replace(/\u201c/g,"“");
}

正确的引用是/\u201d/

【讨论】:

    【解决方案2】:

    我建议直接解决问题,而不是使用变通的 java 脚本。 大多数时候,charset 的声明是不正确的。 例如在 html 中,你必须把它放在你的 head-tag 中:

    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    

    IF 您的页面(html 文件、php 文件)保存为 utf-8 文档。 (这也可以是 ISO-XXXX,如果是,只需更改声明的值即可。

    您可以在文档的属性中查找它,甚至可以在编辑器中更改文档的编码(例如 eclipse、notepad++)。

    【讨论】:

    • 我添加了这个元标记,但它没有修复它。这是我正在处理的页面的链接:reachhighernow.com/?page=attunement。它在 Firefox 中显示正确。
    • 页面当前编码为windows-1252。所以只需将UTF-8 更改为windows-1252 就可以了。
    • 是的,编码问题。 ISO-8859-1 应该适合您。
    • 感谢 Lister 先生,windows-1252 修复了它。
    • @JohannesStaehlin 虽然大多数浏览器使用 ISO-8859-1 作为 windows-1252 的别名,但如果您指的是 windows-1252,我建议使用 windows-125!
    猜你喜欢
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 2014-07-22
    相关资源
    最近更新 更多