- \s : 空格
- \S : 非空格
- \d : 数字
- \D : 非数字
- \w : 字符 ( 字母 ,数字,下划线_ )
- \W : 非字符例子:是否有不是数字的字符
- +至少出现一次 匹配不确定的次数
- .(点)元字符——匹配除了换行符以外的任意字符
- \b : 独立的部分 ( 起始,结束,空格 )
- \B : 非独立的部分
- ^ : 放在正则的最开始位置,就代表起始的意思,注意 /[^a] /和 /^[a]/是不一样的,前者是排除的意思,后者是代表首位。
- $ : 正则的最后位置 , 就代表结束的意思
- \a 表示重复的某个子项 比如:
/ (a) (b) (c) \1/-----匹配 abca ; / (a) (b) (c) \2/------匹配 abcb
- *任意次 相当于{0,}
- ?零次或一次 相当于{0,1}
- +一次或任意次相当于 {1,}
- {n}: 正好n次
- {n,m}:至少出现n次,最多m次。
- {n,} :至少n次
常用的方法
- test() :在字符串中查找符合正则的内容,若查找到返回true,反之返回false.
var str = '374829348791';
var re = /\D/; // \D代表非数字
if( re.test(str) ){ // 返回true,代表在字符串中找到了非数字。
alert('不全是数字');
}else{
alert('全是数字');
}
- search() :在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不只是一个字母,那只会返回第一个字母的位置),如果搜索失败就返回 -1
var str = 'abcdefd';
var re = /d/g;
alert( str.search(re) );
- match() 在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,失败就返回null。
var str = 'haj123sdk54hask33dkhalsd879';
var re = /\d+/g;
alert( str.match(re) );
- replace() 查找符合正则的字符串,就替换成对应的字符串,返回替换后的内容。
var str = "我们都是好孩子,一群天真的孩子";
var rg = /孩子/g;
var str2 = str.replace(rg,"*");
alert(str2);
正则中的字符
- ()小括号,叫做分组符。
var str = '2013-6-7';
var re = /(\d+)(-)/g;
str = str.replace(re,function($0,$1,$2){
//replace()中如果有子项,
//第一个参数:$0(匹配成功后的整体结果 2013- 6-),
// 第二个参数 : $1(匹配成功的第一个分组,这里指的是\d 2013, 6)
//第三个参数 : $1(匹配成功的第二个分组,这里指的是- - - )
return $1 + '.'; //分别返回2013. 6.
});
alert( str ); //2013.6.7
//整个过程就是利用子项把2013- 6- 分别替换成了2013. 6. 最终弹出2013.6.7
match方法也会返回自己的子项
var str = 'abc';
var re = /(a)(b)(c)/;
//[abc,a,b,c]( 返回的是匹配结果以及每个子项当re的匹配后不加g的时候才可以获取到子项的集合)
alert( str.match(re) );
- [] : 表示某个集合中的任意一个,比如 [abc] 整体代表一个字符 匹配 a b c 中的任意一个,也可以是范围,[0-9] 范围必须从小到大。对于点(.)和星号(*)这样的特殊符号在一个字符集中没有特殊的意义。
- [^a] 整体代表一个字符 :^写在[]里面的话,就代表排除的意思
var str = '<div class="b">aabbccddeeff</div>';
var re = /<[^>]+>/g;
console.log(str.match(re));
- 去除非数字
var str = str.toString().replace(/\D/g,'');
网友评论