将数字字符引用转换为实际字符

时间:2016-02-19 08:51:16

标签: javascript regex utf-8

我收到一些带有日语字符的字符串,其中以数字字符引用格式表示,需要将它们转换为适当的日语字符以供显示。

我编写了以下JavaScript来进行转换

var regex_num_set = /&#\d+;/g,
var strJapanese = "Here is some Japanese text: みなさん、"

var charSet = str.match(REGEX_NUM_CHARSET); 
if(charSet && charSet.length > 0) {
    charSet.forEach(function(c) {
        str = str.replace(c, String.fromCharCode(parseInt(c.replace(/[&#;]/g, ''))));
    })
};

这可以完成这项工作但是有没有更有效的方法来定义正则表达式并进行简单的单行替换?

1 个答案:

答案 0 :(得分:0)

如果您想要替换,为什么不使用replace

var regex_num_set = /&#(\d+);/g;
var strJapanese = "Here is some Japanese text: みなさん、"


strJapanese = strJapanese.replace(regex_num_set, function(_, $1) {
  return String.fromCharCode($1);
});  


document.write('<pre>'+JSON.stringify(strJapanese,0,3));

请注意,此代码不处理十六进制转义(&#xMMM)和“星界”字符(如&#127812;)。对于生产用途,我建议你到处寻找一个可以正常工作的库。

相关问题