JavaScript的正则表达式
正则表达式类RegExp
用类建立正则表达式
-
通过new对象来生成一个正则表达式对象
var reg = new RegExp(参数1,参数2);
var t = new RegExp("^[0-5]\\d+","ig");
参数1:匹配的字符串
参数2:修饰符【无顺序】
- i 忽略大小写
- g 全局匹配
- m 如果遇到换行符就重新计算行首和行尾
-
去掉new直接生成
var reg = RegExp(参数1,参数2);
var t = RegExp("^[0-5]\\d+","ig");
-
常量赋值
var reg = /参数1/参数2;
var t = /^[0-5]\d+/ig;
类的方法
-
test
表达式.test(字符串) 返回值为true证明匹配到字符串,返回值为false证明没有匹配到字符串
var t = /^[0-5]\d+/ig; var s = "2abc"; alert(t.test(s));
-
exec
表达式.exec(字符串) 返回值为数组证明匹配到字符串,返回null证明没有匹配到字符串
var t = /love/ig; var s = "I love you"; alert(t.exec(s)[0]);
字符串中的正则表达式
-
match()
字符串.match(表达式)
返回值为数组时证明匹配到字符串,返回值null证明没有匹配到字符串
-
repalce()
字符串.repalce(/旧字符串/正则表达式,新字符串)
用正则表达式可以通过匹配旧字符串,来用新字符串替换
返回值为替换后的字符串
-
split()
字符串.split(表达式)
用正则表达式可以通过匹配旧字符串,来分割字符串
返回值为分割后的数组
-
search()
字符串.search(表达式)
用正则表达式可以通过匹配旧字符串,来用找打该字符第一次出现的位置
返回值为字符串的下标,为-1则没有找到
写在正则表达式里的元字符
- 符号:. 匹配任意单字符
- 符号:[] 匹配一定范围内的单个字符
- 符号:\w 匹配字母,数字,下划线,等价于[a-zA-Z0-9_]
- 符号:\W 匹配非字母,数字,下划线,等价于[^a-zA-Z0-9_]
- 符号:\d 匹配数字,等价于[0-9]
- 符号:\D 匹配非数字,等价于[^0-9]
- 符号:x? (x为任意单个字符,或者元字符) 匹配0或1个x字符
- 符号:x+ 匹配1个或一个以上的x的字符
- 符号:x* 匹配任意多个x字符
- 符号:x{m,n} 匹配x最少m个最多n个
- 符号:x{m} 匹配x必须是m个
- 符号:{xyz} xyz当作单个字符来处理
- 符号:\s 匹配包含空格,回车,换行等看不见的字符
- 符号:\S 匹配非包含空格,回车,换行等看不见的字符
- 符号:^ 行首匹配,必须以正则开始
- 符号:$ 行首匹配,必须以正则结尾
- 符号:x|y|z| 相当于或,匹配x或y或z
正则练习
-
验证全中文
var t = /^[\u4e08-\u9fa5]+$/
-
验证身份证
var t = /^[0-9]\d{17}(\d|x)$/
-
电话号码验证
var t = /^1\d{10}$/