你需要知道的前端知识点:正则表达式

正则表达式是对字符串执行模式匹配的强大工具,在面试过程中经常被提问道,比如贪婪匹配,分组捕获等等。先从最基础的开始了解正则表达式吧。

你需要知道的前端知识点:正则表达式_第1张图片
正则表达式参考表

RegExp 对象


RegExp 创建形式有两种,不过我们一般最常用的是字面量创建方式

字面量创建方式: var reg = /{{.*?}}/g;

实例创建方式: new RegExp('{{.*?}}', 'g');

RegExp 对象方法


RegExp 的对象方法也是经常背面是问道或者笔试出现的问题。 

RegExp 对象有 3 个方法:test()、exec() 以及 compile()。

test() 

检索字符串匹配的值 ,返回值是 true 或 false

exec()

检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

compile()

compile() 方法用于改变 RegExp,既可以改变检索模式,也可以添加或删除第二个参数

很多地方都有讲解,最上面图中也有解释,你要是嫌跳转麻烦就看我写的如下几个例子

你需要知道的前端知识点:正则表达式_第2张图片
test exec compile

(非)贪婪匹配


.* :贪婪匹配

.*? :非贪婪匹配

        贪婪匹配是什么? 非贪婪匹配又是什么?其实,,在字面上你就能看出, 贪婪匹配就是最大限度的匹配更多内容,而非贪婪匹配则相反.话不多说直接来个仿 Vue的 数据绑定的例子:

你需要知道的前端知识点:正则表达式_第3张图片
贪婪匹配例子 (关于 Vue 数据绑定)

术语与操作符


其实,最顶上图中也有,我为什么写在这里呢,因为这些比较常用,而且对于初学者来说,容易记混。特别强调一下

重复出现

? : 出现一次或不出现

+ : 出现一次或多次

* : 出现零次或多次 (包括1次)

预定义字符类

. : 匹配除了新行(\n) 之外的任意字符

\d : 匹配任意数字

\w : 匹配包括下划线的任意单词字符,等价于[A-Za-z0-9]

\s : 匹配任何空白字符,包括空格、制表符、换页符等

\b : 通常是单词分界位置,但如果在字符类里使用代表退格


接下来我们来点实战,光说不练假把式。建议大家可以自己手敲一下,用到的比较简单

实战


手机号验证

比较常用,但是也比较实用,先从最常用最基础的开始

你需要知道的前端知识点:正则表达式_第4张图片
手机号验证

这里 需要注意 [] 和 | 的区别

[0123] = 0|1|2|3

相邻重复单词验证

你需要知道的前端知识点:正则表达式_第5张图片
相邻重复单词验证

这里需要注意 分组与捕获

\1 : 代表的第一个分组,即: /(\b\w+\b)\s\1/中的 (\b\w+\b)

分组捕获值得大家深入了解一下,我这里就不误导大家了,我也是边学习边总结。如果这一篇文章对你有所帮助,请点个喜欢,谢谢!


更多内容可以订阅本人微信公众号,一起开启前端小白进阶的世界!

你需要知道的前端知识点:正则表达式_第6张图片
前端 Demon

你可能感兴趣的:(你需要知道的前端知识点:正则表达式)