方法:
正则表达式的方法:
1:test()方法:在字符串中查找符合正则的内容,若查找得到返回true,否则false;
格式:正则.test(字符串);
emailPattern.test("123_456@qq_mail.com") //返回true
2:search()方法:搜索符合正则的第一次出现的位置,若搜索到返回第一次出现的位置,否则返回-1。
格式:字符串.search(正则);
var str="abcd@mail.com"; str.search(/@/); //返回4
3:match()方法:获取正则匹配的结果,以数组的形式返回。
格式:字符串.match(正则);
"123ab45cd678".match(/\d+/g); //返回 [123,45,678],若这里不是全局匹配则返回["123",index:0,"123ab45cd678"],就只会返回第一个
4:exec()方法:捕获符合正则的字符串,若捕获到符合正则的字符串返回一个Array的实例,但它包含了两个额外的属性index和input。index表示符合正则字符串出现的位置;input表示字符串表达式的字符串。
格式:正则.exec(字符串)
var textArray=/.bc/.exec("abc12abc3abc45"); //textArray.index=0;textArray.input="abc12abc3abc45";textArray[0]=abc;
var textArray=/.bc/g.exec("abc12bbc3cbc45"); //textArray.index=0;textArray[0]="abc";textArray[1]="bbc";textArray[2]="cbc";
5:replace方法:用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
格式:字符串.replace(正则|字符串,字符串|回调函数)
5.1字符串.replace(字符串,字符串|回调函数) //这里回调函数必须返回的是一个字符串
"abcde12345abc".replace("abc","mmm"); //return:mmmde12345abc
5.2字符串.replace(正则,字符串)
"abcde12345abc".replace(/abc/g,"mmm"); //return:mmmde12345mmm
5.3字符串.replace(正则,回调函数)
每匹配到一个正则就会调用一次回调函数,每次回调都会传递以下参数:
result:本次匹配到的结果
$1-$9:正则中有多少个()就表示有多少个参数
offset:记录本次匹配的开始位置
source:接受匹配的原始字符串
replace搭配JS正则的一些案例:
5.3.1:去掉字符串两边的空格
" abc ".replace(/(^\s+)|(\s+$)/g,function(){
return "";
})
5.3.2:提取URL中的参数和参数值
var obj={};
var url="www.emilzs.com/action?name=emilzs&age=18"
url.replace(/([^&=]+)=([^&=]*)/gi,function(rs,$1,$2){
obj[$1]=$2; //注:当第一次匹配到正则时$1为name,$2为emilzs。当第二次匹配到正则时$1为age,$2为18
})
5.3.4:在指定位置插入新字符串
str.replace(/(.{3})/,function(rs,$1){
return $1+"xyz"; //注:其实这种方法的意思就是将str字符串前3个字符替换成前3个字符+"xyz"
})
5.3.5:将电话号码加密
var str=number.slice(3,7);
number.replace(new RegExp(str,g),"******"); 15123456789 --> 151*****789