1.正则表达式的作用:
1)正则表达式可以对一个输入的字符串进行测试,查看该输入字符串是否符合要求的模式,比如电话或者邮箱。
2)替换文本,可以在文档中使用一个正则表达式来表示特定的文字,然后用对象将其删除或者替换别的文字
3)匹配字符串中的子字符串,然后及逆行操作。
2.创建正则表达式的语法
1)
<script type="text/javascript"> var str= "aaabbbccc"; var reg = new RegExp(); //RegExp和Array一样是一个对象,这样没有任何效果,需要将正则表达式作为参数传递进去 reg = new RegExp("a","ig");//表示查找a,i表示不区分大小写,g表示全文查找 </script>
2)作用等同于上面
reg = /"a"/ig;
3.正则表达式的属性和对象
1).test返回一个布尔类型的值,检查所输入的字符串是否存在,存在返回true,不存在返回false
1 var input = prompt("输入一个六位数的密码") 2 var reg = /^d{6}&/ig; 3 var bool = reg.test(input); 4 console.log(bool);
2).exec
提取指定字符串中的符合要求的子串(或者匹配模式),返回一个数组存放匹配结果;如果没有,则返回null。
exec可以说是test的升级版本,因为它不仅可以检测,而且检测到了可以直接提取结果。
3)match,找到一个或多个正则表达式的匹配。
4)replace,替换与正则表达式匹配的子串。str = str.replace(/正则表达式/ig,"替换的值"),如果替换的值式空,就达到删除的效果。
5)search,检索与正则表达式相匹配的值。返回下标,找不到就返回-1
4.正则表达式预定义类
. 查找单个字符,除了换行和行结束符
d 匹配一个数字类型
w 匹配一个字母数字下划线
W 查找非单词字符
D 匹配一个非数字
s 匹配一个空格
S 查找非空白字符
匹配单词边界
B 匹配非单词边界
5.预定义字符
换行符
回车符
制表符
f 换页符(Tab)
退格符(BackSpace)
v 垂直制表符
空字符("")
6.量词(理解)
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,},至少一次。
? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1},最多一次。
{min,max} 规定最少出现次数,和最多出现次数(可以只写一个)
^ 用来匹配字符串开头
$ 用来匹配字符串结尾
7.属性
正则表达式是严格区分大小写的
i 加上去后不区分大小写
g 全局匹配 找到了一个以后还是会继续接着找
m 多行匹配
lastIndex 为一个整数 标示开始下一次匹配的字符位置。也叫作游标,可以获取赋值
source 正则表达式的源文本
8.方括号[]表示匹配一个字符
[abcd] 表示匹配任意一个字符
[a-z] 匹配a到z的任意一个字符
[A-Z] 匹配A到Z的任意一个字符
[0-9] 匹配0到9的任意一个字符
[^] 表示取反
应用实例:
1.写一个function,清楚字符串前后的空格
var hello =" hell o "; function reg(str){ str = str.replace(/(^s*)|(s*)$/g,"");//用正则表达式匹配到开头的空格或者结尾的空格,
然后以“”空字符串代替 //其中^s是以空格开头,*是不限制次数, //s* $是匹配不限制次数的以结尾的空格 console.log(str); } reg(hello);
2.试用正则表达式,验证邮箱格式
function email(email){ var reg = /^w+@w+(.w{2,3}){1,2}$/g; console.log(reg.test(email_value)); } var email_value = "1231231313@qq.com"; email(email_value);