JavaScript中正则表达式-字面量VS构造函数
一直没有系统总结过字面量与构造函数在声明正则中的区别,抽空总结下。
区别
- 字面量中对于特殊字符都是直接解析,而在构造函数中需要加正斜杠进行转译, 比如\d会被当作字符串\d看待,但比如
- 字面量前后正斜杠只是为了表示该值为正则,只是分割符,假如在构造函数中写就意味着匹配斜杠
- 字面量表达式的易读性是高于构造函数
举例子
以下正则匹配等价
1 | const value = 'rt:60C1C036-42FA-4073-B10B-1969BD2358FB@00000000077'; |
如何选择
假如正则模式匹配,优先使用字面量,但正则模式是个变量需要利用上下文才可以确定,那么就应该使用构造函数。
延伸
字面量,变量
字面量与变量不同,比如a=1
,那么a即是变量,但同时我们也可以说1是个字面量,因为从面上我们就可以看出值是多少。所以说字面量说的是值,而变量说的是参数,一个左边,一个右边。
写在最后
文本处理绕不开正则,所以需要留心总结。