如何将 unicode 从 HTML 输入转换为 javascript 中的希腊字符?第一个例子不起作用,但第二个例子起作用。
var str = input.value; \u03B1 (typed into input box)
console.log(str); \u03B1
var str = "\u03B1"; assigned directly
console.log(str); α
如何将 unicode 从 HTML 输入转换为 javascript 中的希腊字符?第一个例子不起作用,但第二个例子起作用。
var str = input.value; \u03B1 (typed into input box)
console.log(str); \u03B1
var str = "\u03B1"; assigned directly
console.log(str); α
要将字符串中的 unicode 文字转换为实际字符,您可以String.prototype.replace
使用String.fromCharCode
var str = '\\u03B1\\u03B2\\u03B3\\u03B4'; // "\u03B1\u03B2\u03B3\u03B4"
str.replace(/\\u([\da-fA-F]{4})/g, function (m, $1) {
return String.fromCharCode(parseInt($1, 16));
}); // "αβγδ"
反斜杠在第二个变量中转义str
- 在第一个值中,如果 input.value 是,它实际上与通过转义使反斜杠无效\u03B1
相同。var str = "\\U03B1"
如果要评估字段中的转义字符,可以这样做:
var str = input.value.replace("\\u", "");
str = String.fromCharCode(parseInt(str, 16));
这是有效的,因为您正在从 \u 之后的所有内容中解析一个整数并将其传递给fromCharCode
. 字符代码是整数 - 您正在从原始代码中解析该\u23B1
代码。