1.什么是正则表达式
正则表达式是用于定义字符串的规则,计算机可以根据正则表达式检查一个字符串是否符合规则,获取字符串中符合规则的内容
2.使用语法:
var 变量 = new RegExp("正则表达式", "匹配模式");
其中第二个参数为匹配模式
可以是 (i 忽略大小写)(g 全局匹配模式)
或者var 变量 = /正则表达式/匹配模式;
3.一些方法
正则表达式对象.test(检测对象)
符合正则表达式要求则返回true否则不返回。使用|(或)符号 var reg = /a|b/
检查一个字符串中是否有a或者b- []这个里面的内容也表示或 例如
[ab] == a|b
[a-z]
任意小写字母[A-Z]
任意大写字母[A-z]
任意字母- 检查一个字符串中是否含有abc或者adc或者aec
var reg = /a[bde]c/
4.字符串对象的方法
-
split()方法 split()方法可以将一个字符串拆分为一个数组
方法中传递一个正则表达式为参数,这样会根据正则表达式去拆分字符串javascript var str = "1a2b3c4d5e6f7" var result = str.split(/[A-z]/); //result成为1,2,3,4,5,6,7的一个数组
-
search()方法 -search()可以搜索字符串中是否含有指定的内容 -如果搜索到,则会返回第一次出现的index,否则返回-1 -让他接受一个正则表达式作为参数,根据正则表达式去检索
-
match()方法
-可以根据正则表达式,从一个字符串中将符合的条件内容提取出来
-默认下,match只会找到第一个符合要求的内容,找到以后就停止,但是可以设置正则表达式为全局匹配,这样就会匹配到所有的内容
var str = "1a2b3c4d5e6f7;
result = str.match(/[A-z]/gi);//可以为一个正则表达式设置多个匹配模式,g和i的顺序没有影响
console.log(result);
//输出a,b,c,d,e,f的数组
- replace()方法
-replace可以将字符串中指定内容替换为新的内容
-参数:
1.被替换的内容,可以接受一个正则表达式作为参数
2.新的内容
-默认只会替换一个,全局模式
5.量词
- 通过量词可以设置一个内容出现的次数
- 量词只对它前面的一个内容起作用
- {n} 正好出现n次
- {m,n} 出现m-n次
- {m,}m次以上
-
- 至少一个,相当于{1,}
-
- 0个或者多个,相当于{0,}
- ?0个或者1个,相当于{0,1}
6.例子
手机号码规则:
1 5 012312312
1.以1开头
2.第二位3-9任意数字
3.三位以后任意数字9个
- ^1
- [3-9]
- [0-9]{9}$
其中^是以开始
$以什么结束
没有这两个就是在一堆中匹配这些
var phoneStr = "15012312312";
var phoneReg = /^1[3-9][0-9]{9}$/;
console.log(phoneReg.test(phoneStr));