编程

JS正则表达式常用符号

2019-06-21  本文已影响50人  北冥有鱼我养的

常用的方法

  1. test() :在字符串中查找符合正则的内容,若查找到返回true,反之返回false.
var str = '374829348791';
var re = /\D/;      //  \D代表非数字
if( re.test(str) ){   // 返回true,代表在字符串中找到了非数字。
    alert('不全是数字');
}else{
    alert('全是数字');
}
  1. search() :在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不只是一个字母,那只会返回第一个字母的位置),如果搜索失败就返回 -1
var str = 'abcdefd';
var re = /d/g;
alert( str.search(re) );
  1. match() 在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,失败就返回null。
var str = 'haj123sdk54hask33dkhalsd879';
var re = /\d+/g; 
alert( str.match(re) );
  1. replace() 查找符合正则的字符串,就替换成对应的字符串,返回替换后的内容。
var str = "我们都是好孩子,一群天真的孩子";
var rg = /孩子/g;
var str2 = str.replace(rg,"*");
alert(str2);

正则中的字符

  1. ()小括号,叫做分组符。
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) );
  1. [] : 表示某个集合中的任意一个,比如 [abc] 整体代表一个字符 匹配 a b c 中的任意一个,也可以是范围,[0-9] 范围必须从小到大。对于点(.)和星号(*)这样的特殊符号在一个字符集中没有特殊的意义。
var str = '<div class="b">aabbccddeeff</div>';
var re = /<[^>]+>/g;
console.log(str.match(re));
  1. 去除非数字
var str = str.toString().replace(/\D/g,'');
上一篇 下一篇

猜你喜欢

热点阅读