正则表达式就是用于字符串的匹配规则。数据类型是对象也是引用类型。正则常用于表单验证。
1 // 案例输入一个电话号码000-88888888
2 var call = prompt("请输入一个电话号码");
3 var reg = /^\d{3}-\d{8}$/;
4 if(reg.test(call)){
5 console.log("输入正确");
6 }else{
7 console.log("输入错误,请重新输入");
8 }
|
2.1 正则的概述
正则表达式(regular expression),简称RegExp。是被用来匹配字符串中的字符组合的模式。常用来做表单验证。
创建正则表达式最简单的方法,就是使用正则字面量。字面量:/表达式/
1 // 使用正则字面量的方法创建
2 var reg = /\d+/ //表示右一个或者多个数字;
3 var reg = /\s+/ //表示只有有一个空白字符;
4 var reg = /abcd/ //表示有四个字符必须是a,b,c,d并且顺序也是固定;
|
2.1 方法
配合正则表达式使用的方法有字符串方法和正则表达式的方法。(谁的方法只能谁调动也就是字符串的方法只能是字符串调用,正则方法只能是正则调动)
split() 根据匹配字符串切割父字符串
match() 使用正则表达式与字符串相比较,返回一个包含匹配结果的数组。
search() 对正则表达式或指定字符串进行搜索,返回首次出现的匹配项的下标。
replace() 用正则表达式和字符串直接比较,然后用新的子串来替换被匹配的子串。
1 // split()方法用字符串切割父字符串
2 var str = "aaabbjdkdbbbbbbbbbbjskblkk";
3 // 正则的匹配规则
4 // var reg = /b+/;
5 var arr = str.split(/b+/);
6 console.log(arr);
7 var str1 = "a bbb cc d";
8 var arr2 = str1.split(/\s+/);
9 console.log(arr2);
|
1 // match()方法用于字符串或者正则的匹配输出所在位置
2 var str = "abobosjkfjffkl";
3 console.log(str.match("obo"));
|
如果不写g只输出匹配条件的第一个字符串。书写g会输出所有匹配的字符串。
1 var str =
"abo osjko
ofjo offkl";
2 console.log(str.match(/o\s+o/g)); //g表示在全局匹配
|
1 // search()方法返回首次匹配的下标。没有全局搜索。
2 var str = "aboaosjkoaaaaaofjoaoffkl";
3 console.log(str.search("oo"));
4 console.log(str.search(/oa+o/));
|
1 // replace()方法表示匹配的字符串替换到原来的
2 var str = "www.baidu.com";
3 // 第一个参数表示匹配的字符串
4 // 第二个参数表示新的字符串。
5 console.log(str.replace("baidu","icketang"));
6 console.log(str.replace(/baidu/,"icketang"));
7 // 去掉字符串中的空格
8 var str2 = "a b ccccc d";
9 console.log(str2.replace(/\s+/g,""))
|
正则的方法:
exec()。方法表示匹配的字符串在父字符串中的位置。返回一个数组。即使是全局匹配也只会返回字符串第一次出现的位置。
1 // exec()字符串在父字符串中的位置
2 var str = "aaabcddddjabced";
3 // 全局匹配
4 console.log(str.match(/abc/g));
5 // 正则方法
6 // var reg = /abc/;
7 console.log(/abc/.exec(str));
|
test()方法检测字符串中是否有符合正则表达式的部分。有返回true,没有返回false。
1 // test()检测字符串中是否有符合正则表达式的部分
2 var str = "aaabccccddddd";
3 console.log(/abc/.test(str));
4 console.log(/abcd/.test(str));
|
|