基于唯一标识符的Javascript替换十六进制

基于唯一标识符的Javascript替换十六进制,javascript,regex,hex,ascii,Javascript,Regex,Hex,Ascii,我怎么能拿这样的绳子 John, Smith~2C John, Jones~2CMike 并将这些由~表示的十六进制值替换为ASCII对应值 假设您总是有两个字符十六进制代码,前面是char~,那么/~[0-9A-F]{2}/i将给出一个匹配项。 现在,如果我们全局匹配并附加一个要替换的函数,我们可以使用基数/base 16解析整数,并使用Object String的方法fromCharCode从中生成一个字符。只是别忘了先去掉尾随的~字符 下面是一个简短的示例,让您开始学习: functio

我怎么能拿这样的绳子

John, Smith~2C John, Jones~2CMike

并将这些由~表示的十六进制值替换为ASCII对应值

假设您总是有两个字符十六进制代码,前面是char~,那么/~[0-9A-F]{2}/i将给出一个匹配项。 现在,如果我们全局匹配并附加一个要替换的函数,我们可以使用基数/base 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')  );

希望这有帮助

提示:.我一直在使用上面的函数,但是我怎样才能有效地遍历字符串而不不断地删除并替换十六进制部分呢?