【问题标题】:Swapping unicode characters交换 unicode 字符
【发布时间】:2016-02-02 05:16:37
【问题描述】:

我正在尝试编写一个函数,可以将字符串中的 unicode 字符换成非 unicode ASCII 字符,问题是 unicode 连字符和引号在上传包含它们的字符串时不会被读取。

我希望函数有一个带有键值对的对象(以便它可以用更多的 unicode 引号或连字符更新,这可能会在将来导致问题),对象的键是 ASCII 引号 "并且值是 unicode 引号 的集合以换出字符串。

    function replaceUnicode(string) {

      var dictionary = {
        '"': '"”"”',
        '-': '-﹣'
      }

    }

我知道您可以使用正则表达式来换出字符串中的 unicode 字符,但我想将此对象用作所选 unicode 字符的字典。我要问的是,如果您传入一个包含与字典值匹配的 unicode 引号的字符串,您如何将这些引号交换为字典对象键值?

【问题讨论】:

  • 您可以根据字典的键动态创建正则表达式。

标签: javascript unicode


【解决方案1】:

您可以使用字典,但仍需要使用正则表达式进行替换才能找到匹配项。

这样的事情应该可以工作:

function replaceUnicode(s) {

  var dictionary = {
        '"': '"”"”',
    '-': '-﹣'
  }

  for(var key in dictionary) {

    var re = new RegExp(key,"g");
    s = s.replace(re,dictionary[key])

  }

    return s

}


var str = 'hello "world" - how are - you';
console.log(replaceUnicode(str))

你可以在这里看到它的工作原理:https://jsfiddle.net/krpxu0gL/

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-19
    • 2011-04-26
    • 2015-11-24
    • 2014-04-14
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多