概念:
正则表达式:(Regular Expression)是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。
创建:
- 通过调用RegExp对象的构造函数创建。
- 通过字面量创建
正则表达式方法:
test()
正则对象方法,用于检测字符串是否符合该规则,该对象会返回true
或false
,其参数是测试的字符串。
replace()
可以实现替换字符串操作,用来替换的参数(第一个是被替换的,第二个是替换成的)可以是一个字符串或者是一个正则表达式,返回一个新的字符串。注意:只能替换第一个出现的字符串。
正则表达式 中的特殊字符
正则表达式中不需要加引号!
边界符:
^
(开头)、$
(结尾)
^$
组合使用是精确匹配。
字符类:
-
[]
(表示有一系列字符可供选择,只要匹配其中一个就可以); -
^[]$
(表示有一系列字符可供选择,只能匹配其中一个。例如var reg = /^[asdf]$/
,只能是a、s、d或者f其中一个才返回true
) -
[]
中可以加一个”-“表示范围。例如/^[a-z]$/
表示26个英文字母(小写)任何一个字母(小写)都返回true
;/^[a-zA-Z]$/
表示26个英文字母(大小写都可以)任何一个字母(大小写都可以)都返回true
;数字也可以组合。 -
[]
内部第一个字符是^
,表示取反。例如/^[^a-z]$/
表示不能包含26个英文字母任何一个小写字母。 -
|
:或者符号。
量词符:
- *:用来设定某个模式出现的次数。
*
相当于>=0,可以出现0次或者很多次。 例如/^a*$/
,表示a可以出现>=0,即可以出现0次或者很多次。 +
: 相当于>=1,可以出现1次或者很多次。?
:相当于0||1。{n}
:重复n次。{n,}
:重复n次或者很多次。{n,m}
:重复n到m次(闭区间),中间不能有空格。
括号:
- 中括号:字符集合,匹配括号中的任意字符(多选一)。
- 大括号:量词符,表示重复次数(紧挨着的字符)。
- 小括号:表示优先级。
预定义类:
\d
:匹配0-9之间任一数字,相当于[0-9]
;\D
:匹配所有0-9以外的字符,相当于[^0-9]
;\w
:匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]
;\W
:匹配除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]
;\s
:匹配空格(包括换行符、制表符、空格符等),相当于[\t\r\n\v\f]
;\S
:匹配非空格的字符,相当于[^\t\r\n\v\f]
。
正则表达式的参数
/表达式/[switch]
switch(也成为修饰符)按照什么模式来匹配,有三种值:
g
:全局匹配i
:忽略大小写gi
:全局匹配+忽略大小写