javascript unicode 解码,unicode 码转为汉字

1.主要想问这段代码中 $2的作用

2.代码说明,这是一段代码的作用是将 unicode 编码转为汉字

代码如下

`var param = '测试商品A-    型号AAA'
function reconvert(str){
    str = str.replace(/(&#)(\d{1,6});/gi,function($0){
        return    String.fromCharCode(parseInt(escape($0).replace(/(%26%23)(\d{1,6})(%3B)/g,"$2")));
    });
    return str;
}

reconvert(param)`

3.问题
目前了解的知识点
a.replace可以通过正则表达式来进行替换
b.escape 能进行转码 这里是将 “”替换为了 “%26%23”
c."$"在 replace 中有特殊的含义,表示第几个参数。

为什么这里需要使用‘$2’,而不是 ‘$1,$3...’

谢谢你的回答!

阅读 4.9k
1 个回答

javascript正则表达式是支持分组捕获的,分组的结果会存储静态属性$1-$9中
其中在你的表达式中,要替换的内容在替换为第二个分组中捕获的内容

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题