【问题标题】:How to replace curly quotation marks in a string using Javascript?如何使用 Javascript 替换字符串中的大括号?
【发布时间】:2012-03-13 03:58:19
【问题描述】:

我正在尝试替换大引号:

str = '“I don’t know what you mean by ‘glory,’ ” Alice said.';

使用:

str.replace(/['"]/g,'');

为什么它不起作用?我该怎么做?

【问题讨论】:

    标签: javascript replace


    【解决方案1】:

    它不起作用,因为您试图用空字符串替换 ASCII 撇号(或单引号)和引号字符,而源字符串中的实际不是 ASCII 字符。

    str.replace(/[“”‘’]/g,'');
    

    有效。

    【讨论】:

      【解决方案2】:

      您可能必须(或更喜欢)使用 Unicode 转义:

      var goodQuotes = badQuotes.replace(/[\u2018\u2019]/g, "'");
      

      那是有趣的单引号;双引号的代码是 201C 和 201D。

      edit — 从而完全替换 all 的花哨的引号:

      var goodQuotes = badQuotes
        .replace(/[\u2018\u2019]/g, "'")
        .replace(/[\u201C\u201D]/g, '"');
      

      【讨论】:

      • >>> str.replace(/[\u2018\u2019]/g, "#");结果是:““我不知道你说的#glory 是什么意思,#”Alice 说。”
      • 对。你为什么把“#”放在替换字符串中?如果你想替换这两种引号,你需要两次调用.replace()。我会更新答案。
      • 您可以使用以下内容扩展此脚本,它会替换您在从 Word 等粘贴时在文本框中获得的 em 破折号和省略号:.replace(/[\u2013\u2014]/g, '-') .replace(/[\u2026]/g, '...')
      • 花了三天时间在我的笔记本电脑上盯着一个整体试图弄清楚这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 2013-08-14
      • 2018-12-26
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多