正则

1  test()  :在字符串中查找符合正则的内容,若查找到返回true,反之返回false.
用法:正则.test(字符串)
 
let str = '124567890'
let re = /\D/ // 非数字
if (re.test(str)) {
  alert('不全是数字')
} else {
  alert('全是数字')
}
 
2   search()  :在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不只是一个字母,那只会返回第一个字母的位置), 如果搜索失败就返回 -1
 
用法:字符串.search(正则)
 
例子:在字符串中找字母b,且不区分大小写
 
let str = 'abcdvbsb'
let re = /B/i       //正则中默认是区分大小写的 如果不区分大小写的话,在正则的最后加标识 i
//var re = new RegExp('B','i'); 也可以这样写
alert(str.search(re)) //1
 

3  match()  在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,失败就返回null。

     用法: 字符串.match(正则)

    全局匹配:g——global(正则中默认,只要搜索到复合规则的内容就会结束搜索 )

 例子:找出指定格式的所有数字,如下找到 123,54,33,879
   var str = 'haj123sdk54hask33dkhalsd879'
   var re = /\d+/g
  // 每次匹配至少一个数字 且全局匹配 如果不是全局匹配,当找到数字123,它就会停止了。就只会弹出123.加上全局匹配,就会从开始到结束一直去搜索符合规则的。如果没有加 号,匹配的结果就是1,2,3,5,4,3,3,8,7,9并不是我们想要的,有了加号,每次匹配的数字就是至少一个了。
 alert(str.match(re)) // [123,54,33,879]
 
4 replace() :查找符合正则的字符串,就替换成对应的字符串。返回替换后的内容。
 
用法: 字符串.replace(正则,新的字符串/回调函数)(在回调函数中,第一个参数指的是每次匹配成功的字符)
 
例子:敏感词过滤,比如 我爱北京天安门,天安门上太阳升。------我爱*****,****上太阳升。即北京和天安门变成*号,
var str = "我爱北京天安门,天安门上太阳升。";
var re = /北京|天安门/g; // 找到北京 或者天安门 全局匹配
var str2 = str.replace(re,'*');
alert(str2) //我爱**,*上太阳升
 
//这种只是把找到的变成了一个*,并不能几个字就对应几个*。
 
例子:让2013-6-7 变成 2013.6.7
 
 
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
 
 
 

[] : 表示某个集合中的任意一个,比如 [abc] 整体代表一个字符 匹配 a b c 中的任意一个,也可以是范围,[0-9] 范围必须从小到大 。

[^a] 整体代表一个字符   :^写在[]里面的话,就代表排除的意思

例子:

var re = /<[^>]+>/g; //匹配左括号 中间至少一个非右括号的内容(因为标签里面还有属性等一些东西),然后匹配右括号
var re = /<[\w\W]+>/g; //匹配左括号 中间至少一个字符或者非字符的内容,然后匹配右括号
// 其实就是找到左括号,然后中间可以有至少一个内容,一直到找到右括号就代表是一个标签。

 

转义字符

\s : 空格

\S : 非空格

\d : 数字

\D : 非数字

\w : 字符 ( 字母 ,数字,下划线_ )

\W : 非字符例子:是否有不是数字的字符

posted @ 2018-10-11 15:45  cecelingmeng  阅读(114)  评论(0编辑  收藏  举报