javaScript_新手正则匹配菜鸟攻略

最近看了李**的教程,大概整理了一下js中正则的一些新手入门的知识。


/*
var pattern = /Box/i;
var str = "This is a box!";
alert(pattern.test(str));							//This is a box! 中是否包含不区分大小写的box

 var pattern = /Box/i;
 var str = 'box';
 alert (pattern.exec(str));
  alert (typeof pattern.exec(str));				//返回的数组,有就返回数组的值,如果没有匹配到 就返回null

  //String对象中的正则表达式方法
  // match(pattern)       返回pattern中的子串或null
  // replace(pattern,placement)
  //search(pattern)       返回字符串中pattern开始位置
  //split(pattern)				返回字符串按指定pattern拆分的数组
  
   
var pattern  = /Box/i;    //没有开启全局
var str='This is a Box! That is a Box!';
alert(str.match(pattern));

var pattern  = /Box/ig;    //开启全局
var str='This is a Box! That is a Box!';
alert(str.match(pattern));

 var pattern  = /Box/ig;    //
var str='This is a Box! That is a Box!';
alert(str.search(pattern));

 var pattern  = /Box/i;    //查找即返回,无需g全局,若找不到则返回-1
var str='This is a Box! That is a Box!';
alert(str.search(pattern));

 
 var pattern  = /Box/ig;  
var str='This is a Box! That is a Box!';
alert(str.replace(pattern,'Tom'));  //返回替换后的字符串
alert(str);   //原字符串没有变化

 var pattern  = / /ig;  //空格 
var str='This is a Box! That is a Box!';
alert(str.split(pattern));  




 var pattern = /google/i;
 var str='This is a google!';
 pattern.test(str); 			//必须执行一次 ,静态属性才有效
 // alert(RegExp.input);       //当期被匹配的字符串
 // alert(RegExp.leftContext);
 // alert(RegExp.rightContext);
  // alert(RegExp.lastMatch);
  // alert(RegExp.lastPaten);		//最后一对圆括号内的匹配字符串
   // alert(RegExp.multiline); //用于指定是否所有的表达式都用于多行的布尔值、、不好用
 
  
  
  
  //获取控制部分 
  
  .											//匹配除换行符外的任意字符
  [a-z0-9]								//匹配括号中的字符集  中的任意字符
  [^a-z0-9]							//匹配不在括号中
  \d										//匹数字
  \D										//匹非数字
  \w										//匹配字母和数字及_
  \W										//匹配非字母和数字及_
  
  
  锚字符
  
  ^										//行首匹配
  $										//行尾匹配
  \A										//只有匹配字符串开始处
  \b										//匹配单词边界,词在【】内无效
  \B										//匹配非单词边界
  \G										//匹配当前搜索的开始位置
  \Z										//匹配字符串结束处或行尾
  \z										//只匹配字符串结束处
  
  空白字符
  
  \0									//匹配null字符
  \b									//匹配空格字符
  \f									//匹配
  \n									//匹配换行符
  \r									//匹配回车符
  \t									//匹配制表符
  \s									//匹配空白字符,空格,制表符,和换行符
  \S									//匹配非空白字符



  
  var pattern = /g.gle/;
  var str  ='gogle';
  alert(pattern.test(str));
  
    var pattern = /go*gle/;    //o*  表示0个,1个  或者多个o,*表示前面一个字符
  var str  ='gogle';
  alert(pattern.test(str));
  
  
    var pattern = /go+gle/;    //o+   表示1个或者多个
  var str  ='gogle';
  alert(pattern.test(str));
  
    var pattern = /go?gle/;    //o?   表示1个或者0个
  var str  ='gogle';
  alert(pattern.test(str));
  
  
    var pattern = /go{2,4}gle/;    //o{n,m} 表示大于等于n,小于等于m个 o
  var str  ='gogle';
  alert(pattern.test(str));
  
    var pattern = /go{3}gle/;    //o{n} 表示限定3个o
  var str  ='gogle';
  alert(pattern.test(str));
  
  
    var pattern = /go{3,}gle/;    //o{n} 表示限定3个o,或三个以上
  var str  ='gogle';
  alert(pattern.test(str));
  
       var pattern = /[a-zA-Z0-9]oogle/;    //表示匹配
  var str  ='8oogle';
  alert(pattern.test(str));
  
  
        var pattern = /^[0-9]oogle/;    //这个^符号,是加在/后面而不是【】里面,从行首开始匹配
  var str  ='8oogle';
  alert(pattern.test(str));
  
  
      var pattern = /\woogle/;   
  var str  ='8oogle';
  alert(pattern.test(str));
  
  
      var pattern = /\woogle$/;     //强制尾匹配 
  var str  ='8oogle';
  alert(pattern.test(str));
  
  
  
        var pattern = /google|baidu|bing/;		//|表示匹配或选择模式   
  var str  ='baidu';
  alert(pattern.test(str));
  
  
  
  

      var pattern = /(google){4,8}/;		//分组,可以看成一个字符
  var str  ='google';							//表示 google 4-8次
  
  alert(pattern.test(str));
  
  
  
  var pattern = /^[a-z]+\s[0-9]{4}$/;
  var str = 'goole 2012';
  alert (pattern.test(str));
  
    var pattern = /^[a-z]+\s[0-9]{4}$/;
  var str = 'goole 2012';
  alert (pattern.exec(str));  //返回字符串数组
  
  
  
  
  var pattern = /^[a-z]+/;
  var str = 'google 2012';
  alert (pattern.exec(str));  //  只返回google
  
  
        var pattern = /^([a-z]+)\s([0-9]{4})$/;
  var str = 'goole 2012';
  alert (pattern.exec(str));  //  捕获性分组返回字符串数组 a0 返回整个,a1返回第一个。。。
  
  
      var pattern = /^([a-z]+)\s(?:[0-9]{4})$/;
  var str = 'goole 2012';
  alert (pattern.exec(str));  //  非捕获性,就是不需要捕获, 在前面加上?:
  
  
  
  
  var pattern = /(a?(b?(c?)))/
  var str = 'abc' //嵌套分组
  
  
  
  var pattern  = /goo(?=gle)/;  //goo后必须跟gle才匹配 ,前瞻性捕获
  var str = 'goobb';
  alert (pattern.exec(str));
  
  
  
  
  var pattern = /^\d+/gm;  //限定首,开启换行, 开启全局
 var str = '1.baidu\n2.google\n3.bing';
 alert(str.replace (pattern,'#'));
 
 //常用的 正则
   
  //检查邮编
  var pattern = /[1-9][0-9]{5}/;
  var str = 'this is 224000';   //6位,数字,第一位非零
  alert(pattern.test(str));
  
  
    //文件压缩包匹配
  
  var pattern = /^[\w\-]+\.(zip|gz|rar)$/; //首开始
  var str = '21-3.zip'; //文件名:字母,下划线,数字,后面加点,zip,gz,rar,7z
  alert(pattern.test(str));
  
  
  */
  
  //验证电子邮件
  
  
  var pattern = /^([\w\.\-]+)@([\w\-]+)\..*$/;
  //  var pattern = /^([\w\.\-]+)@([\w\-]+)\.(a-zA-Z){2,4}$/;
  str  = 'yc6.com@gmail.com';
  alert (pattern.test(str));
  







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值