测试的昵称: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$< ”,看页面结果注意到“$” 后的“&” 的也被替换了。难道是“$&” 在js 里表示正则向后引用的全匹配?
然后去掉了正则,将代码改成:Javascript代码
复制代码 代码如下:
$id("f_msg_grow_1").innerHTML=msg["not_club"]["grow_value"].replace("{NICK_NAME}",this.info["friend"]["nick_name"]);
居然还是同样的结果,太诡异了!!!
更诡异的是在IE 下查看,居然是显示正确的(之前一直在ff 下测试)!
测试代码:Javascript代码
复制代码 代码如下:
document.write("姓名:{NAME}".replace(/\{NAME}/g,"张剑光$&"));
IE 和ff 显示相同:C-sharp代码
姓名:张剑光{NAME}amp;
经测试,“$&” 果真表示正则向后引用的全匹配,算我孤陋,之前居然不知道!
测试代码:Javascript代码
复制代码 代码如下:
document.write("姓名:{NAME}".replace("{NAME}","张剑光$&"));
ff 显示:C-sharp代码
姓名:张剑光{NAME}amp
IE 显示:C-sharp代码
姓名:张剑光$&
经测试,ff 下居然replace 即使不用正则,“$&” 也表示向后全匹配!!!
无语!
查找资料、测试并总结如下:
一、
|
字符 |
含义 |
|
$$ |
$ |
|
$& |
指定与整个模式匹配的 stringObj 的部分。 |
|
$` |
指定由 $& 描述的匹配之前的 stringObj 部分。 |
|
$' |
指定由 $& 描述的匹配之后的 stringObj 部分。 |
测试代码:
复制代码 代码如下:
document.write("姓名:{NAME}__".replace(/\{NAME}/g,"张剑光$&"));
document.write("姓名:{NAME}__".replace(/\{NAME}/g,"张剑光$$"));
document.write("姓名:{NAME}__".replace(/\{NAME}/g,"张剑光$`"));
document.write("姓名:{NAME}__".replace(/\{NAME}/g,"张剑光$'"));
Ie 、ff 和chrome 结果相同:
复制代码 代码如下:
姓名:张剑光{NAME}amp__姓名:张剑光$__姓名:张剑光姓名:__姓名:张剑光____
二、 ff 和chrome 下replace 不使用正则,也对上述特殊字符起作用
ie 下replace 不使用正则,对上述特殊字符不起作用 测试代码:
复制代码 代码如下:
document.write("姓名:{NAME}__".replace("{NAME}","张剑光$&"));
document.write("姓名:{NAME}__".replace("{NAME}","张剑光$&"));
document.write("姓名:{NAME}__".replace("{NAME}","张剑光$$"));
document.write("姓名:{NAME}__".replace("{NAME}","张剑光$`"));
document.write("姓名:{NAME}__".replace("{NAME}","张剑光$'"));
ff 和chrome 结果:
复制代码 代码如下:
姓名:张剑光{NAME}amp__姓名:张剑光$__姓名:张剑光姓名:__姓名:张剑光____
Ie 结果:
复制代码 代码如下:
姓名:张剑光$&__姓名:张剑光$&__姓名:张剑光$$__姓名:张剑光$`__姓名:张剑光$'__
三、 由此,我们在应用replace 等正则相关函数时,是否有必要特殊处理下上述存在情况呢?
测试代码:
复制代码 代码如下:
var str = "姓名:{NAME}";
var str2 = "$<jesse$<";
document.write(str.replace(/\{NAME}/g,str2));
document.write("<br />");
document.write(str.replace(/\{NAME}/g,str2.replace(/\$/g,'$$$$')));//注意这里是四个“$”
页面显示:
复制代码 代码如下:
姓名:{NAME}lt;jesse{NAME}lt;
姓名:$<jesse$<
你还可以自己测试下:
复制代码 代码如下:
var str = "姓名:{NAME}";
var str2 = "$<jesse$<";
document.write(str.replace(/\{NAME}/g,str2.replace(/\$/g,'$$')));
比较好的做法是:
复制代码 代码如下:
function tplReplace(str,json){
return str.replace(/{(\w+)}/gi,function(a,b){
return b in json ? json[b] : a;
}
}
相关推荐:
WPS改写-轻松提升文档创作效率的秘密武器,推广网站的优势
ChatGPT崩溃!用户反馈网页端无法访问,修复急需,ai院子
SEO单页网站:助力企业在线营销的一站式解决方案,湖南视频网站优化方式
优排软件:高效管理新天地,轻松提升工作效率,长葛外贸网站建设
ChatGPT一经发布,便受到了用户的狂热追捧,引爆人工智能热潮,十代ai达人办公本
SEO新手必看:从零开始SEO优化的终极指南,随州网站优化技巧
用AI写科普文章:科技改变写作的未来
SEO项目指的是什么,seo项目指的是什么意思 ,写个ai
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
高效创作新时代AI文案速写工具,让创作更轻松
ChatGPT您的应用遇到问题,无法正常启动?如何解决并重新体验智能助手的魅力!,男头ai关键词
seo点击工具,seo排名点击软件推荐 ,ai狂躁
seo辅助词选什么,seo助手 ,各车企ai
专业关键词助力SEO优化,让你的内容脱颖而出,东营响应式网站优化
SEO培训:助力企业实现互联网营销的无限可能,平塘网站优化推广价格
ChatGPT网络故障报告从协调世界时(UTC)晚上1107左右开始激增,15分钟内引发广泛关注,ai无视进化
GPT优化:让你的工作与生活更高效、更智能,Ai__79
什么是seo平台seo教程,什么是 seoseo有何价值 ,论文写作ai助手公众号
SEO联系:如何通过SEO优化提升您的网络营销效果,企业营销推广获客
seo需要买什么,seo需要考虑什么 ,ai做表头
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
文章疑似AI生成怎么办?如何辨别并应对AI生成文章的挑战
目前国内最好的AI人工智能软件:未来新篇章
优化文字,让表达更精准:提升写作效率的关键,个人网站建设外包
ChatGPT无法加载?检查您的网络设置并尝试重启,轻松解决常见问题!,ai招生广告设计
人工润色:让文字更具魅力的秘密武器,快排seo软件哪个最好
ChatGPT在处理文本时可能无法完全理解上下文的复杂性,肌肉ai
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,济南关键词的排名优化
seo需要懂什么源码,seo需要懂什么源码技术 ,ai 纤维
《“查看更多”背后的秘密:让你的人生更加丰富多彩!》,宁安公司网站建设
SEO译为:网站排名背后的优化策略,会展中心网站优化
今时CMS:引领数字化转型的智慧之选,河南seo优化网站联系方式
WP原创:打造属于你的独特网站,从这里开始!,一个网站推广一个月需要多少钱
专业SEO方案助力企业网站流量暴增,精准引流不再是难题,网站建设合同4篇
seo需要什么器械,seo需要什么器械才能做 ,长续航ai纯电汽车
SEO是如何推动企业增长的关键力量,深圳罗湖网站建设设计
什么是seo的豆子,何为seo ,ai圆复制
ChatGPT中显示已进行一处编辑,但看不到内容?你需要了解的隐藏问题!,ai敲
seo稿件是什么意思,seo文章写作要求 ,ai写作未来展望和展望
ChatGPT无法访问原因分析及解决方案,斑马ai报道
AI免费生成文字,打造创作新时代
SEO快速优化技术:助力网站流量暴增,轻松登顶搜索引擎,铜陵ai全网通推广软件
seo网站通过什么软件,网站seo软件哪个 ,战团ai
文章创作AI:引领智能写作的新时代
ChatGPT页面不自动显示最新消息:如何解决这一困扰,提升使用体验?,斑马ai幼儿百度云网盘
【BVIP尊享体验:超越奢华,开启专属未来】,珠宝网站建设思路
ChatGPT4网页空白:重新定义智能交互的未来,怎么登ai
用AI写文章查重率高吗?揭秘AI写作与查重检测的关系
ChatGPT启动时遇到问题?快速解决方案让你畅享智能对话体验,ai如何保存logo
SEO目标:让您的网站轻松登顶搜索引擎,优化购物网站的搜索