Javascript 正则

正则表达式

作用: 前端往往会有大量的数据校验工作,可以通过正则表达式对象提高工作效率

正则表达式定义

var reg = /表达式/修饰符;

正则表达是有 普通字符 和 特殊字符 组成的 , 组成的这个正则表达式 就可以做一些校验工作

正则表达式中的特殊字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
^ : 表示正则表达式的开始

$ : 表示正则表达式的结束

- : 表示前面紧挨着的字符至少出现 1 次 没有上限 等价 {1,}

? : 表示前面紧挨着的字符至少出现 0 次,至多出现 1 次 等价 {0,1}

- : 表示前面紧挨着的字符至少出现 0 次 没有上限 等价{0,}

. : 表示任意一个字符

: 表示转义字符 . 表示 . \ 表示

d : 表示 0-9 之间的任意一个数字 等价 [0-9]

D : 表示非数字 (表示除了 0-9 之间的任意一个字符) 等价 [^0-9]

w : 表示一个单词字符(字母、数字、下划线中的任意一个) 等价 [a-zA-Z0-9_]

W : 表示一个非单词字符

s : 表示空白字符(空格、tab)

S : 非空白字符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
m,n}这里的m和n为正整数 m<n 表示括号前面紧挨着的字符至少出现m次 至多出现n次

{m} 这里的m表示正整数 表示括号前面紧挨着的字符只能出现m次

{m,} 表示括号前面紧挨着的字符至少出现m次 (没有上限)

[] 表示括号内的任意一个字符

[123abc] 代表123abc中的任意一个字符

[a-z] 表示a-z中的任意一个字符

[a-zA-Z] 表示任意一个字母

[^ ] 表示非 括号内的任意一个字符

( ) 优先级最高 一般和 | 连用

| 表示或者

[\u4e00-\u9fa5] 表示任意一个中文字符

[\u2e80-\u9fff] unicode 字符集

修饰符:

i 不区分大小写

g 全局查找

m 多行查找

正则表达式的方法

test() 方法 :

根据正则表达式规范判断某个字符串是否符合该正则规范,返回一个布尔值

用法:

1
reg.test(str);

exec() 方法 :

用正则表达式在字符串中查找,返回包含该查找结果的一个数组

返回的数组长度为 1

如果查找不到 返回 null

用法:

reg.exec(str) ;

例如:

1
2
3
4
5
6
7
var str = "How old are you?";

var reg = /[a-z]+/i;

//查找字符串中 包含 1 个以上的小写字母

alert(reg.exec(str));

match() 方法 :

使用正则表达式对字符串查找,并将包含的结果作为数组返回。如果 match()没找到匹配,返回 null.

用法:

str.match(reg) 参数是一个正则对象

说明:

查找时,如果正则表达式有修饰符 g, 根据正则全局匹配查找

查找时,如果正则表达式没有修饰符 g, 先根据正则表达式查找一次,返回一个数组,数组后面的其他值是根据正则表达式中的子表达式匹配查找的结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

例如:

var str = "How Old Are You?";

var reg = /[a-z]+/ig;

alert( str.match(reg) );//使用 reg 规范 查找 str ,满足条件 返回一个数组

例如:

var reg = /<.+>(.\*)</.+>/;

var str = "<p>sssss</p>";

alert( str.match(reg) );

search()方法 :

返回与正则表达式匹配的第一个子字符串的位置,如果找到匹配项,返回一个整数,如果没找到,则返回-1。这个用法类似 indexOf()方法。

1
2
3
4
5
6
7
8
9
10
11
12

用法:

str.search(reg);

例如:

var str = "123 how are you?";

var reg = /[a-z]+/;

alert( str.search(reg) );

replace() 方法 :

通过正则表达式替换,返回结果 是原字符串被替换后的新字符串

用法: str.replace(正则表达式,要替换的新字符串)

如果想实现全局替换,在正则表达式上加一个修饰符 g

1
2
3
4
5
6
7
8
9
10

例如:

var str = "good good study,day day up!!!";

//将字符串中的good 替换成 best

var reg =/good/g;

alert( str.replace(reg,"best") )

本文标题:Javascript 正则

文章作者:Jonathon

发布时间:2019年01月31日 - 14:01

最后更新:2019年01月31日 - 15:01

原始链接:https://www.jonathon.cn/js6.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

苟富贵,勿相忘!