如何获取像
这样的字符串John, Smith~2C John, Jones~2CMike
并将这些由~表示的十六进制值替换为对应的ASCII值?
假设您总是有2个字符十六进制代码,前面是字符~
,那么/~[0-9A-F]{2}/i
将给出匹配。
现在,如果我们全局匹配并附加一个函数来替换,我们可以使用基数/基数16解析整数,并从中生成一个字符(使用Object String的方法fromCharCode
)。只是不要忘记先去掉后面的~
字符。
下面是一个简短的例子:
function demo(s){
return s.replace(/~[0-9A-F]{2}/gi, function(m){
return String.fromCharCode(parseInt(m.slice(1), 16));
});
}
console.log( demo('John, Smith~2C John, Jones~2CMike') );
希望这对你有帮助!