一谈到正则表达式,我相信很多人都或多或少有点抗拒,因为它的语法确实有点火星文的味道 != =

但是只要掌握了,我们可以利用它大大提高代码的开发效率,因此掌握正则是十分有必要的,废话不多说,开搞!

ppx.jpg

正文

正则的定义

正则表达式用于 对字符串进行模式匹配及检索替换,是对字符串执行模式匹配的强大工具

666.jpg

正则的使用姿势

在js里,我们有两种方式来使用正则

  1. 正则字面量:形如 /^a.*z$/
  2. 正则对象: 形如 new RegExp(‘\\w+’),需要注意的是使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \),比如 new RegExp(‘\\w+’) 等价于 /\w+/

正则里的元字符

上一节中我们看到了类似 \w 的特殊字符,它在正则里表示特殊的含义:一个数字或字母或下划线

在正则里,这种特殊字符叫做 元字符,这一类的字符有很多,不同的元字符代表不同的特殊含义,下面列举常见的元字符

正则里的修饰符

正则里的修饰符用于执行区分 大小写全局匹配

正则里的方括号

方括号用于查找某个范围内的字符,常用的如下

正则里的量词

所谓量词,就是指字符 出现的次数,常见的如下

正则里的方法

正则对象提供了不同的方法,用于满足特定的需求,列举如下

1
2
3
4
5
6
7
8
9
10
console.log(/a/.exec('abca'))
console.log(new RegExp('a').exec('abca'))
/*
['a', index: 0, input: 'abca', groups: undefined]
0: "a"
groups: undefined
index: 0
input: "abca"
length: 1
*/
1
2
console.log(/a/.test('abca')) //true
console.log(new RegExp('az').test('abca')) //false

字符串对象里支持正则的方法

在字符串对象里,提供了支持正则使用方式的不同的方法,列举如下

结语

正则表达式其实就是纸老虎,在不熟悉时觉得很难,熟悉过后就会觉得其实就那样,因此对于任何知识的学习都不要有畏难的情绪,只有内心强大了,才能征服一座座高山,好啦,over!