正则表达式
英文regular expression,正则表达式仅仅是用来处理字符串的,它的特长在于处理复杂的字符串
正则表达式的作用
1.通过正则表达式定义的模型(规则/模式)去验证某个字符是否和模型匹配
2.通过正则表达式定义的模型(规则/模式)去把和模型匹配的字符串找出来
定义正则表达式
var reg=/abcd/;
对象直接量的方式创建正则表达式
var reg=new RegExp(‘abcd’);构造函数创建方式
正则表达式的方法
test 验证当前字符串是否匹配正则表达式,返回值true/false
语法:正则规则.test(字符串)
exec 把符合验证的字符串找出来,返回的是数组,数组的第一个元素
语法:正则规则.exec(字符串)
元字符
\d 匹配一个数字字符。等价于[0-9]。
\D 匹配一个非数字字符。等价于[ ^0-9]。
\s 匹配一个空白字符(空格,制表符…),等价于[\r\n\t\f\v]。
\S 匹配任何非空白字符,等价于[ ^\r\n\t\f\v]。
\w 匹配一个0-9,a-z,A-Z,的字符,等价于[0-9a-zA-Z]。
\W 等价于[ ^0-9a-zA-Z_]
\ 转义字符
x|y x或者y中的一个
[xyz] x,y,z中任意一个
[ ^xyz] 除了xyz任意字符
[a-z] 匹配a-z中任意字符
[ ^a-z] 匹配除了a-z中任意字符
() 正则中的分组
. 匹配除“\n”之外的任何单字符
.表示.这个字符
量词
*表示0到多个
+表示1到多个
?表示0到1个
{n}表示出现n次
{n,}表示出现n到多次
{n,m}表示出现n到m次
元字符的补充说明
[]表示的是范围:
[0-9]表示0-9之间(包含)的任意一个数字
正则表达式可以用()分组
\作为转意
贪婪模式和非贪婪模式
{3,6}它会尽量多的去匹配字符,这就叫贪婪模式
如果我们希望正则尽量少的匹配字符,在量词后面加问号即可{3,6}?,这就叫非贪婪模式
边界
^表示开始,限制开头紧跟的字符,比如:/ ^ a/ 匹配“ab”,不匹配“ba”
$表示结束,限制结束紧挨的字符,比如:/ a $ /匹配“ca”,不匹配“ac”