正则表达式

1.定义:由普通字符和元字符组成的带有特殊含义的字符串–设定某种规则字符串

2.作用:查找、匹配、替换

3.语法格式:

var reg = /regExp/



元字符


1.

{m}

:表示匹配

m

个字符

2.

{m,}

:表示匹配

m

个或以上字符

3.

{m,n}

:表示匹配

m

个到

n

个字符

4.

+

:表示匹配1个或以上字符,等价于

{1,}

5.

*

:表示匹配0个或以上字符,等价于

{0,}

6.

?

:表示匹配0个或1个字符,等价于

{0,1}



范围

1.

[]

:表示匹配

[]

内的任意一个字符 – 没有先后顺序;元字符除

^,-

以外,在

[]

内的其他元字符都使用普通含义

2.

[start-end]

:表示匹配从

start

开始到

end

结束的任意一个字符

[0-9]:表示匹配任意一个数字
[a-z]:表示匹配任意一个小写字母
[A-Z]:表示匹配任意一个大写字母


元字符

1.

^

:用在正则表达式的开头,表示匹配字符串开头(自身之后的第一个字符)

​ 用在

[]

中第一位,表示非

2.

$

:用在正则式的末尾,表示匹配字符串结尾(自身之前的第一个字符)

3.

\d

:匹配任意一个数字,等价于

[0-9]

4.

\D

:匹配任意一个非数字,等价于

[^0-9]

5.

\w

:匹配数字、字母、下划线中的任意一个字符

6.

\W

:匹配任意一个非数字、字母、下划线字符

7.

\b

:匹配单词边界(单词的开头和结尾) – 写在前面就匹配单词开头,写在末尾就匹配单词结尾;适用于在一个长字符串中匹配一个完整的单词开头和结尾

8.

.

:匹配除换行符和行结束符以外的所有任意一个字符

9.

\

:将元字符转义为普通字符

10.

()

:子正则式,表示一个完整的正则表达式

11.

|

:用在

()

中,表示或者



修饰符

1.

i

:不区分大小写

2.

g

:全局匹配

3.

m

:匹配换行




拓展

1.

\n

:用在正则式中,表示匹配第

n

个子正则式的结果

2.

$1-$99

:用在正则替换中(

replace

),表示匹配第

n

个子正则式的结果

2.

str.search(regExp)

:在一个字符串中查找另一个字符串(可以用正则式表示)的位置

3.

str.replace(old,new)

:查找

str

中的字串

old

替换成

new

(替换一个)

4.

str.replaceAll(old,new)

:替换所有

str



old



new

5.贪婪模式:能匹配的尽量多

非贪婪模式:能匹配的尽量少,在量词的后面加上

?



实例

1.限制input输入框只能输入大小写字母、数字、下划线的正则表达式:

> <a-input type="text" onkeyup="this.value=this.value.replace(/[^\w_]/g,'');">

2.限制input输入框只能输入数字和点的正则表达式:


<input type="text" oninput="value=value.replace(/[^\d.]/g,'')"><br>

3.限制input输入框只能输入中文英文的正则表达式:

<input type="text" oninput="this.value=this.value.replace(/[^\u4e00-\u9fa5^a-zA-Z]/g,'')"><br>