一、正则表达式的4个常用常用方法:
1.test:
//test : 正则去匹配字符串,如果匹配成功就返回真,如果匹配失败就返回假
//test的写法 : 正则.test(字符串)
var str = 'abcdef';
var re = /b/;
alert( re.test(str) );
//显示的结果为:true
2.search:
//search : 正则去匹配字符串 , 如果匹配成功,就返回匹配成功的位置,如果匹配失败就返回 -1
//search的写法 : 字符串.search(正则)
var str = 'jksjlfw';
var re = /s/;
alert(str.search(re));
//显示的结果为:2
3.match:
//match : 正则去匹配字符串,如果匹配成功,就返回匹配成功的数组,如果匹配不成功,就返回null
//match的写法 : 字符串.match(正则)
var str = 'haj123sdk54hask33dkhalsd879';
//在正则表达式双斜杠后面添加一个g表示匹配全局,d表示匹配数字0-9,在d后面添加一个加号表示匹配多个d
var re = /d+/g;
alert( str.match(re));
//显示的结果为:123,54,33,879
4.replace:
//replace : 正则去匹配字符串,匹配成功的字符去替换成新的字符串
//replace的写法 : 字符串.replace(正则,新的字符串)
var str = 'haj123sdk54hask33dkhalsd879';
var re = /d+/g;
//将所有的数字全部提换成了汉字两个字
alert(str.replace(re,'汉字'))
//显示的结果为:haj汉字sdk汉字hask汉字dkhalsd汉字
二、正则表达式部分细节:
1.replace : 第二个参数:可以是字符串,也可以是一个回调函数
//菲称仁爱礁附近17艘中国船均在菲军监视之下
var str = '菲称仁爱礁附近17艘中国船均在菲军监视之下';
var re = /菲称|中国船|监视之下/g;
str = str.replace(re,function(str){
//函数的第一个参数:就是匹配成功的字符
var res = '';
for (var i = 0; i < str.length; i++) {
res += '*';
};
return res
})
alert(str);
//显示的结果为:**仁爱礁附近17艘***均在菲军****
2.匹配子项:
//匹配子项 : 小括号 () (还有另外一个意思,分组操作)
var str = '2013-6-7';
var re = /(d+)(-)/g;
str = str.replace(re,function(str1,str2,str3){
//str1表示正则获取的整体
//str2表示正则的第一个子项也就是第一个括号里的内容
//srt3表示正则的第二个子项也就是第二个括号里的内容;
return $1 + '.';
});
alert( str );
//显示结果为:2013.6.7
3.知识点概括:
①[ ] 中括号的整体代表一个字符,在[ ]中可以限定范围,例如:[a-z]则表示小写字母a-小写字母z,[A-Z]则表示大写字母A-大写字母Z,[0-9]则表示数字0-9;
②排除 : ^ 如果^写在[]里面的话,就代表除[ ]内容以内范围都包括在内的意思;
③量词 :
{4,7} : 最少出现4次,最多出现7次
{4,} : 最少出现4次
{4} : 正好出现4次
+ : 表示一次或者一次以上
? : 表示0次或者一次
* : 表示最少出现0次