猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
为什么str.replace()没有效果
上面这段代码为什么没办法从
obj1
中剪掉
obj2
这一段呢?
输出的结果还是完完整整的
obj1
,仿佛什么都没操作过一样
慕容3067478
浏览 620
回答 1
1回答
慕仙森
打开开发者工具,把patt打印出来,你会发现,patt如下:我们知道[]在正则表达式里面是有特殊含义的,表示字符集,匹配[]里面的任意一个字符,单纯看/[]/这个正则表达式,你会发现这个正则什么都匹配不了,因为[]表示需要匹配这个字符集里面的任意一个字符,但是这个字符集是空的,所以任何一个字符都不能匹配这个字符集,所以/[]/什么都不匹配,[]是patt的一部分,所以这个正则什么都不匹配。你可以手动将patt改成/{"name":"第一句的子节点","content":"1children","children":\[\]}/g,即将[]使用\去除特殊含义,你会发现替换成功了,截图如下:所以你需要先将JSON.stringify(obj2)里面的[]进行传化,代码如下:patt = new RegExp(JSON.stringify(obj2).replace(/\[|\]/g, "\\$&"), 'g');效果截图如下:
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续