1. 正则表达式概述

  • 正则表达式:也叫规则表达式,按照一定的规则组成的一个表达式
  • 正则表达式的作用:主要是匹配字符串的,验证表单,过滤敏感词(替换)
  • 正则表达式的组成:是由元字符或者是限定符组成的一个式子

2. 正则表达式对象创建

  1. 构造函数创建对象:
var  reg = new  RegExp(/\d{1,5}/);
  1. 字面量:
var reg = /\d{1,5}/;

3. 正则表达式的方法

序号

方法

参数

描述

返回值

1

.test(字符串)

字符串

验证字符串是否符合正则表达式的规则

布尔值

/*1. test(字符串) 返回boolean值,验证字符串是否符合正则表达式的规则*/
   var  reg = new  RegExp(/\d{1,5}/)
   reg.test("呵呵123");
   //或者:
   /\d{1,5}/.test("呵呵123") //可以用正则表达式直接调用方法

4. 边界符(位置符)

序号

边界符

描述

1

^

在 [] 外面以什么开始,在 [] 里面取非(取反)

2

^[0-9]

以数字开头

3

^[a-z]

以小写字母开头

4

[^0-9]

取反,非数字

5

[^a-z]

非小写字母

6

[^0-9a-zA-Z_]

表示的是特殊字符

7

$

表示的是以什么结束

8

[0-9][a-z]$

必须以小写字母结束

9

^[0-9][a-z]$

严格模式,(一个数字开头加一个字母结束)

5. 量词符

序号

量词符

描述

1

*

前面的表达式出现了0--多次

2

[a-z][0-9]*

小写字母中的任意一个 后面是要么是没有数字的,要么是多个数字的

3

+

前面的表达式出现了1--多次

4

[a-z][9]+

小写字母一个,后面最少一个9,或者多个9

5

?

前面的表达式出现了0次或1次

6

[4][a-z]?

前面一个4,后面任意小写字母出现0或1次

7

{}

更加的明确前面的表达式出现的次数

8

{3}

表示的是前面的表达式出现了3次

9

{0,}

表示的是前面的表达式出现了0--多次(和 *一样的)

10

{1,5}

表示的是前面的表达式出现了1--5次

6. 优先级

  • () 分组 提升优先级
[0-9]|([a-z])|[A-Z] //表示要么是数字要么是一个字母,([a-z])被括号包裹了所以字母以小写优先
    ([0-9])([1-5])([a-z]) //多组的情况下, 从最左边开始计算

7. 元字符

序号

元字符

描述

1

.

除了\n以外的任意的一个字符

2

[]

范围

3

[0-9]

0到9之间的任意的一个数字

4

[0-9a-zA-Z]

所有的数字或者是字母中的一个

5

|

或者

6

[0-9]|[a-z]

表示的是要么是一个数字,要么是一个小写的字母

8. 简写

序号

简写

描述

1

\d

数字中的任意一个

2

\D

非数字中的一个

3

\s

空白符中的一个

4

\S

非空白符

5

\w

非特殊符号

6

\W

特殊符号

7

\b

单词的边界

9. 正则表达式的参数:/表达式/[switch]

  • 正则表达式中:g 表示的是全局模式匹配(就是字符串中所有匹配的部分)
  • 正则表达式中:i 表示的是忽略大小写
  • gi可以一起写,就是忽略大小写全局匹配
var str="中国移动:10086,中国联通:10010,中国电信:10000";
       //把str里面所有的数字全部显示出来
       var array = str.match(/\d{5}/g);
       console.log(array);

10. 正则表达式的替换(String的方法)

  • replace(参数,参数)方法可以实现替换字符操作,用来替换的参数可以是一个字符串, 也可以是一个正则表达式;
    第一个参数:被替换的字符串或者正则表达式
    第二个参数:替换为的字符串
    返回值是一个替换完的新字符串
'abcda'.replace(/a/,"xx")  //只替换一个位置的'a'
    'abcda'.replace(/a/g,"xx") //替换所有的'a'