[英]How to convert Unicode Hex Characters to Latin-1 in JavaScript
[英]How to convert string of mixed latin and unicode characters
我有许多由混合的拉丁和unicode编码西里尔符号组成的字符串。 我需要的是一个javascript函数,可将这些字符串转换为人类可读的形式。 这是我想出的:
var EGstr = 'Гриф Kettler прямой';
var newStr = EGstr.replace(/&#(\d+);/g, String.fromCharCode('$1') );
本来可以正常工作,但事实并非如此……请告诉我如何正确更改代码。
您可以使用:
var d = document.createElement('div');
d.innerHTML = 'Гриф Kettler прямой';
alert(d.innerHTML); //Гриф Kettler прямой
而不是正则表达式。
或者如果我们将其放入函数中...
function getText(txt) {
var d = document.createElement('div');
d.innerHTML = txt;
return d.innerHTML;
}
您可以提供替换功能来replace
方法:
var newStr = EGstr.replace(/&#(\d+);/g, function(_, $1) {
return String.fromCharCode($1);
});
替换函数的第一个参数是与整个表达式匹配的文本(我们不需要)。
从第二个参数开始,将是捕获组捕获的任何参数。
倒数第二个参数和最后一个参数将分别包含match和源字符串的偏移量(我们在这里也不需要,所以我不在替换函数中声明它们)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.