JS中replace正则表达式为何出现异常行为?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1300个文字,预计阅读时间需要6分钟。
测试的代码展示:查看代码,复制代码如下:$id(f_msg_grow_1).innerHTML=msg[not_club][grow_value].replace(/\BNICK_NAME\B/g, this.info[friend][nick_name]); 看代码很快可以注意到两点:
测试的昵称:jesse$<
查看代码:Javascript代码
复制代码 代码如下:
$id("f_msg_grow_1").innerHTML=msg["not_club"]["grow_value"].replace(/\{NICK_NAME}/,this.info["friend"]["nick_name"]);
看代码很快可以注意到两点:“replace 正则”和“$ ”。
在js 中replace 支持正则表达式,而$ 又恰好是正则向后匹配的特殊字符,很容易想到是正则引起的问题。而据我所知正则向后引用只有$1 、$2 、$3 、$4…… ,而这里只有一个”$” 没有数字。
昵称“jesse$< ”在后台经html 特殊字符处理,传到前端是:“jesse$< ”,看页面结果注意到“$” 后的“&” 的也被替换了。
本文共计1300个文字,预计阅读时间需要6分钟。
测试的代码展示:查看代码,复制代码如下:$id(f_msg_grow_1).innerHTML=msg[not_club][grow_value].replace(/\BNICK_NAME\B/g, this.info[friend][nick_name]); 看代码很快可以注意到两点:
测试的昵称:jesse$<
查看代码:Javascript代码
复制代码 代码如下:
$id("f_msg_grow_1").innerHTML=msg["not_club"]["grow_value"].replace(/\{NICK_NAME}/,this.info["friend"]["nick_name"]);
看代码很快可以注意到两点:“replace 正则”和“$ ”。
在js 中replace 支持正则表达式,而$ 又恰好是正则向后匹配的特殊字符,很容易想到是正则引起的问题。而据我所知正则向后引用只有$1 、$2 、$3 、$4…… ,而这里只有一个”$” 没有数字。
昵称“jesse$< ”在后台经html 特殊字符处理,传到前端是:“jesse$< ”,看页面结果注意到“$” 后的“&” 的也被替换了。

