zoukankan      html  css  js  c++  java
  • 正则表达式

    /*正则表达式概念
      由普通字符及特殊字符组成(元字符)组成的对字符串过滤的逻辑公式
       创建方式
       1.字面量
       var reg=/abc/;
       2.构造函数
       var reg1=new RegExp("参数","i");
       var reg=new RegExp('stud1','i');
       第二个参数为可选参数,用来修饰这个正则表达式
       i表示不区分大小写
       test是正则表达式的方法
       alert(reg.test("sTuD11"));//结果为true
       如果要检测字符串(test参数中)含有这个字符串,结果为true
       
         var reg=/STUdy/ig//g表示全局匹配
         console.log(reg.test("asstudy"));
       
        var reg=/day/ig;
        console.log(
        reg.exec("good good study,Day day up")//返回类数组对象,结果:"Day",index:16
        );
        在使用exec方法时,正则表达式如果不是全局匹配,则每次从0开始匹配
        exec方法,返回一个为数组,将匹配成功的内容返回给你,如果没有结果返回为空
        console.log(reg.exec("day aday good"));//index:0
        console.log(reg.exec("day aday good"));//index:5
        console.log(reg.exec("day aday good"));//index:null
       
        var str="goole llld TMd tmdd ooff";
        var reg=new RegExp("tmd","ig");
        alert(str.replace(reg,"***"));//全局匹配,全部替换
       
        字符串的match方法,全局匹配将匹配到的结果都放到一个数组里
        var pattern=/good/ig;
        var str="gooD good nihao good hello";
        var arr=str.match(pattern);
        console.log(arr);//结果:["gooD", "good", "good"]
         var arr1=pattern.exec(str);
         console.log(arr1);
       
        //字符串的search方法,,用于查找符合正则子串的位置,只返回第一个位置
        var pattern=/good/g;
        var str='Good good good student';
        console.log(str.search(pattern));//结果:5
       
        var str="Gaod good study day";
         console.log(str.split(/good/i));//结果["Gaod ", " study day"]
         console.log(str.split(/g..d/i));//结果["", " ", " study day"]
       
         .元字符表示,除了换行之外的所有单个字符
         var reg=/g...gle/ig;
         var str="goodleg--gle";
         console.log(reg.test(str));//false
        
        *号 元字符,出现任意次(0-n)次,重复*前面的单个字符多次匹配
        var reg=/aa.*gle/i;
        var str="aaaaaabaaaagle";
        console.log(reg.test(str));//true;
        console.log(str.match(reg));
      
       //+表示至少出现一次
       var reg=/g.+gle/ig;
       var str="g.+gle";
       console.log(reg.test(str));//true
       //贪婪匹配
       //?表示0-1次表示转义,就是将特殊字符变为普通字符
       var reg=/g?gle/ig;
       var str="ggggggle";
       console.log(reg.test(str));//true
       alert(arg1);
      
       //[]表示字符出现的范围a-z
       var reg=/g[0-9a-zA-Z_]+gle/g;
       var str="g_gle+gle";
       console.log(reg.test(str));
       
       //w等价于[a-zA-Z0-9_]字母数字下划线
       //W表示非字母数字下划线
       var reg=/a\wc/g;
       var str="a\wc";
       console.log(reg.test(str));//true
      
      //d代表数字 等价于[0-9]
      var reg=/gd+g/g;
      var str="gg0gle";
      console.log(reg.test(str));//true
      
      //D{7,}匹配至少7个非数字,相当于[^0-9]{7,}
       //{3}三个  {3,5}至少三个至多五个  {,5}最多五个
       var reg=/aD{3}gle/g;
       var str="abcdgle";
       console.log(reg.test(str));
       console.log(str.match(reg));
      
      //var reg=/D{7,8}/g;
      var reg=/[^0-9]{7,}/;
      var str="1aaaaaaaa";
      console.log(reg.test(str));
      console.log(str.match(reg));
      
      var reg=/^c.+ab$/;
      var str="cbaaaaab2c2ccab";
      console.log(reg.test(str),str.match(reg),str.search(reg));
      
        //s匹配空格
        var str="good Goot gooolle lle";
        console.log(str.replace(/s/g,""));//以空字符串代替空格
       
       //可以匹配是否到了边界
       var reg=/google/g;
       var str2="aagoolea xxgooglea";
       var str="google"
       console.log(reg.test(str2));//false
       console.log(reg.test(str));//true
      
      // |代表或者的意思 匹配其中一种字符串
      var pattern=/google|baidu|bing|yahoo/;
      var str="gbaidueee";
      console.log(pattern.test(str));
     
     //()加上小括号 将内容进行分组,可以作为一个整体进行多次匹配
     //匹配分组里的内容4-8次,(必须要连续出现)
     var pattern=/(google){4,8}/g;
     var str="ggoogleggoogleggoogleggoogleooggooggleogooggle";
     console.log(pattern.test(str),str.match(pattern));
     
     //获取8..8之间的任意字符
     var pattern=/8(.*)8/g;
     var str="This is 8google8";
     console.log(str.match(pattern));//google
     console.log(RegExp.$1);//得到第一个分组里的字符
     
       var pattern=/8(.*)8/g;
       var str="This is 8google8";
       var result=str.replace(pattern,"<strong>$1</strong>");
       document.write(result);
     
     var pattern=/(.*)s(.*)/g;
     var str="baidu taobao";
     console.log(str.replace(pattern,"$2 $1"));//baidu taobao
     
     //exec 方法将匹配到的内容返回,并将()分组内的内容也放入数组中返回
     var pattern =/^([a-z]+)s([0-9]{4})$/gi;
     var str="google 2018";
     //console.log(pattern.test(str));//true
     //console.log(pattern.exec(str));//"google 2018", "google", "2018"
     console.log(pattern.exec(str)[1],RegExp.$1);//google google
      
        检查邮政编码//共6位数字第一位不能为0
        /^[1-9]d{5}$/
        检查文件压缩包//xxx.zipxxx.gzxxx.rar;
        /^w.(zip|gz|rar)$/
        删除多余空格 //
        str.replace(/s/,"");
        删除首尾空格
        str.replace(/^s+/,"");
        str.replace(/s+$/,"");
        电子邮件(xxxxx@xxxxx(.xxxx)+)
        /^w+@w+(.w+)+$/
        手机号
        /^1(3|4|5|6|7|8|9)d{9}$/
        身份证
        /^d{17}(d|X)$/
        日期(xxxx-xx-xx|xxxx/xx/xx|xxxx.xx.xx)
        /^d{2}|d{4}[-/.]d{2}[-/.]d{2}$/
        只能输入中文
        str.replace(/[^u4e00-u9fa5]/,"");
        账户名只能使用数字字母下划线,且数字不能开头,长度在6-15之间
        /^[a-zA-Z_]w{5,14}$/
        */

  • 相关阅读:
    计算公式以及参数数量计算
    sqlmap查找SQL注入漏洞入门
    动态密码卡TOTP算法
    使用windbg分析iis崩溃的一个实例
    windbg加载sos.dll
    wndbg下载与安装
    windbg入门
    IIS崩溃时自动抓取Dump
    net组件转化成COM组件
    dokuwiki安装部署
  • 原文地址:https://www.cnblogs.com/xiangW/p/10657301.html
Copyright © 2011-2022 走看看