为什么我的JavaScript replace方法用正则替换时总是出现奇怪的结果?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1302个文字,预计阅读时间需要6分钟。
测试的代码片段:`jesse$+查看代码:JavaScript代码+复制代码如下:$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$< ”,看页面结果注意到“$” 后的“&” 的也被替换了。
本文共计1302个文字,预计阅读时间需要6分钟。
测试的代码片段:`jesse$+查看代码:JavaScript代码+复制代码如下:$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$< ”,看页面结果注意到“$” 后的“&” 的也被替换了。

