转义字符问题

来源:3-3 编程练习

慕仰5025445

2020-09-11 13:43:58

这种方法var pattern1=new RegExp('\\.');为什么加两个反斜杠,看其他回答是  使用第二个反斜杠将第一个反斜杠转义为普通反斜杠, 那不就是找的\. 吗?可是需求要求找 .  呀,

写回答

1回答

好帮手慕星星

2020-09-11

同学你好,因为“.”在正则中表示匹配除“\n”和"\r"之外的任何单个字符。例如

http://img.mukewang.com/climg/5f5b28f309d5206a03040077.jpg

http://img.mukewang.com/climg/5f5b28c3099db1dd06010034.jpg

我们需要的是字符串中的点,而不是任意字符。所以需要\进行转义

http://img.mukewang.com/climg/5f5b291809d7485e03220066.jpg

http://img.mukewang.com/climg/5f5b291f09650a9505760031.jpg

而在new RegExp('')中比较特殊,参数为字符串形式,一个\表示转义,输出的正则为

http://img.mukewang.com/climg/5f5b296b0921b81803360097.jpg

http://img.mukewang.com/climg/5f5b297109c62f2106170066.jpg

和我们使用字面量写点是一样的,还是匹配任意字符。所以需要再加一个\,将第一个\转义为普通\,不表示转义。这样输出的正则是正确的

http://img.mukewang.com/climg/5f5b29ad09b3a9af03150101.jpg

http://img.mukewang.com/climg/5f5b29bb09280bb406600072.jpg

自己测试理解下,祝学习愉快!

0

0 学习 · 14456 问题

查看课程