相关截图:
问题描述:
图一不需要/g不报错
图二没有加上/g报错,是因为他是正则表达式所以必须得加/g吗
登陆购买课程后可参与讨论,去登陆吧
同学你好,这里理解有些偏差,并不是因为它是正则表达式所以要加/g,而是这个g是全局(global)的意思。
例:var str = "aabbcc" 用 replace 只能替换单个元素如下图。
如用replaceAll是全部替换如下图,既然是全部替换所以就要用到g修饰符。
同学可能还会有疑问,replace加/g修饰符也可以做到全部替换,那为什么还要replaceAll方法,这是因为语义化上可以表达的更加方便与直观,所以才有的replaceAll方法。
祝学习愉快~
这两个表达式都能全局将b替换 为什么下面就要加修饰符g 我感觉还是因为g前面本身是一个正则把 要不然 完全可以采用第一种写法呀老师 那种正则写法意义何在
同学你好,确实能这两种方法都能将b做替换没问题。但是否加g在上面提问的同学有问到,如果不加g为什么报错。同学可以将g取消看看如下:
我们将报错翻译一下看看如下:
那么根据以上报错我们进行一个知识扩展:
如上图replaceAll()官方给出的解答:
当使用一个 regex(正则) 时,您必须设置全局(“ g”)标志, 否则,它将引发 TypeError:“必须使用全局 RegExp 调用 replaceAll”。
那么至于为什么会有这种写法,以下是结合实际工作的经验如使用字符串进行匹配那么直接填"b"即可,但是如果这是用户输入的它本身是个变量,恰巧这又是随便输入的它不符合任何规则,那么我就需要使用到正则的这种方式。
祝学习愉快!
bb b b b b b b b
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
入行前端,是明智的选择!市场需求大,就业前景好,入行门槛低,小白易上手 全新升级:技术更新,Vue3.0/TypeScript/React17.x; 技术更全面,从0基础到全栈开发再到大型项目构建
157 1
75 1
31 2
200 5
155 1
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星