0%

正则表达式

1
2
3
4
5
6
/*
* 正则表达式
* - 用于定义一些字符串的规则,
* 计算机可以根据正则表达式,来检查一个字符串是否符合规则,
* 获取将字符串中符合规则的内容提取出来
*/

创建正则表达式的两种方法

1.构造函数法

1
2
var reg = new RegExp("正则表达式","匹配模式");
var reg1 = new RegExp("a"); //检查一个字符串中是否含有a

2.字面量法

1
var reg = /正则表达式/匹配模式;

正则表达式的方法

test()

1
2
3
4
5
6
/**
* 正则表达式的方法:
* test()
* 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则
* 如果符合规则则会返回true,否则返回false
*/

创建一个正则表达式检查一个字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*

* []中的内容也是或的关系

* [ab] == a|b

* [a-z] 任意小写

* [A-Z] 任意大写

* [A-z] 任意字母

*/
//检查一个字符串中是否含有abc或者adc或者aec
reg = /abc|adc|aec/;
reg = /a[bde]c/;

/**
* [^ ] 除了
*/
reg = /[^ab]/;
reg = /[^0-9]/; //除了数字

下面正则表达式中,哪项不匹配( )

  • 1
    2
    var reg=/ph+..p/;
    var str="phabp";
  • 1
    2
    var reg=/ph+..p/;
    var str="phhhhp";
  • 1
    2
    var reg=/ph+..p/;
    var str="phhhaap";
  • 1
    2
    var reg=/ph+..p/;
    var str="phhhaaap";

    正确选项D

1
2
3
.表示任意字符
如果检查字符串中是否含有.需要用转义符\即\.
注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中的转义字符,需要使用\\来代替
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* \w
* - 字母、数字、下划线[0-9a-z]
* \W
* - 除了字母、数字、下划线
* \d
* - 任意数字[0-9]
* \D
* - 除了数字[^0-0]
* \s
* - 空格
* \S
* - 除了空格
* \b
* - 单词边界
* \B
* - 除了单词边界
*/

量词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* 量词
* - 通过量词可以设置一个内容出现的次数
* - 量词只对它前边的一个内容起作用
*
* - {n} 正好出现n次
* - {m,n} 正好出现m-n次
* - {m,} 正好出现m次以上
* - n+ 正好出现1次或者多次,相当于{1,}
* - n* 正好出现0次或者多次,相当于{0,}
* - n? 0个或1个,相当于{0,1}
*/
/**
* 检查一个字符串是否以a开头
* ^ 表示开头
* $ 表示结尾
*/

邮件的正则表达式

1
2
3
4
5
6
7
8
9
10
11
/**
*电子邮箱
*abc.hello@abc.com.cn
*
*任意的字母数字下划线 . 任意的字母数字下划线 @ 字母或数字 . 字母 .字母(不是必要的)
* /w{3,} /. (/w{3,})* @ [A-z0-9]+ /. ([A-z]{2-5})+
*
*/
var emailReg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;
var email = "abc.hello@163.com";
console.log(emailReg.test(email));