2015-03-13 54 views
3

我有一個UTF-8字符的字符串。據我瞭解,如果要替換字符串中的UTF-8字符,其十六進制表示指定字符,像這樣:無法用RegExp替換UTF-8字符

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

這是一個比賽,但是替代不能正常工作。我錯過了什麼?

JSFiddle

+1

FYI:這是一個Unicode字符(更精確地說, unicode代碼點t),UTF-8只是一種可能的編碼。如果使用UTF-8,它將由字節「E2 86 B5」表示,但JavaScript使用USC-2,其中該字符是16位字「21B5」。 – delnan 2015-03-13 10:42:42

回答

7

您使用一個字符串不是一個正則表達式

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

*棕櫚遇見面孔* 謝謝aduch。 – Tholle 2015-03-13 10:37:48

3

更換

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

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

*翻轉表格* 謝謝Fen1kz。 – Tholle 2015-03-13 10:38:03