/\.scss$/ 正则里这个\是什么意思?

为什么不能直接这么写 /.scss$/ 这不也是匹配吗?

阅读 4k
5 个回答

如果不对. 进行转义,将会匹配除换行符以外的任意字符

var part =  /.scss$/
var part1 =  /\.scss$/

var str = "test。scss"  //注意这里是中文句号

part.test(str) // true 竟然匹配到了,显然不是我们想要的
part1.test(str) // false

chrome控制台调试

补充:
  • 代码 说明
    . 匹配除换行符以外的任意字符
    w 字母、数字、下划线或汉字
    s 匹配任意空白符
    d 匹配数字
    b 匹配单词的开始或者结束
    ^ 匹配字符串的开始
    $ 匹配字符串的结束

. 是特殊字符,需要转义,不然会匹配任意字符
这里应该是要匹配以.scss结尾的

你好,这个是转义符

正则中,部分字符有特殊含义,比如.用来表示匹配除换行符之外的任何单个字符。因此/.scss$/的含义是匹配以除换行符之外的任何单个字符加上scss结尾的字符串zscss满足匹配条件,但并不是期望的结果。匹配文件尾缀的场景下,需要匹配的是单个.字符,而不是.所带来的特殊含义,所以需要使用/\.scss/的方式进行匹配。

By the way,最近在整理和更新一份前端问答式手册,欢迎关注和Star:https://github.com/aoec/fe-he...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题