【问题标题】:Can't replace UTF-8 character with RegExp无法用 RegExp 替换 UTF-8 字符
【发布时间】:2015-03-13 10:32:32
【问题描述】:

我有一个带有 UTF-8 字符 的字符串。据我了解,如果要替换字符串中的 UTF-8 字符,请使用其十六进制表示指定字符,如下所示:

var string = "↵↵↵Middle↵↵↵";
console.log("Match? " + /\u21b5/.test("↵"));
console.log(string);
string = string.replace("/\u21b5/g", "");
console.log(string);

这是一个匹配,但替换不起作用。我错过了什么?

JSFiddle

【问题讨论】:

  • 仅供参考:这是一个 unicode 字符(更准确地说,是一个 unicode 代码点),UTF-8 只是一种可能的编码。如果使用 UTF-8,它将由字节 E2 86 B5 表示,但 JavaScript 使用 USC-2,其中该字符是 16 位字 21B5

标签: javascript regex utf-8


【解决方案1】:

您使用的是字符串而不是正则表达式

string = string.replace(/\u21b5/g, "");

【讨论】:

  • 手掌遇上脸谢谢你。
【解决方案2】:

替换

string = string.replace("/\u21b5/", "");

string = string.replace(/\u21b5/g, "");

【讨论】:

  • 翻转桌 谢谢Fen1kz。
猜你喜欢
  • 2014-09-22
  • 2010-11-28
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多