• 正则表达式再思考(待续)


       最近在使用正则表达式的g标志时出现了错误,索性就把正则表达式在总结下,算是加强理解吧!

       1、创建正则表达式

            1.1使用正则表达式字面量(即//)来创建

            var  reg = /(.)at/g;

            1.2使用构造函数(RegExp)

            var  reg = new RegExp('(.)at','g');

            1.3上述二种方法的不同

              1.3.1、表达式中存在元字符(例如[、|等)

               前者: var  reg = /\.at/g    //匹配 .at;后者:var  reg = new RegExp('\\.at','g'); 

        2.标志g的用法

         正则表达式带上g表示应用于所以符合条件的字符串,而不是在发现第一个匹配项后就停止匹配。所以此情况下lastIndex属性会随着表达式的使用发生变化。例如:

         

           案例二:

             

     3.常用的正则表达式  参考 12

      邮箱:  ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

      URL:[http|https|ftp]:////[^\s]+复杂点的:/ [http|https|ftp]:////([\w-]+\.)([\w-]+)(\?[\w=&]*)?

      IP地址:((25[0-4]|2[0-4]\d|[01]?\d\d?)\.) {3}(25[0-4]|2[0-4]\d|[01]?\d\d?)

      QQ:[1-9]\d{4,}

      HTML: <(^[a-z][a-z 0-9"])>\w*<\/\1>|<^[a-z][a-z 0-9"] \/>

      年-月-日: (^[1-9]\d{3})-(1[0-2]|0?[1-9])-(3[0-1]|[12][0-9]|0?[1-9])

      汉字: [\u4e00-\u9fa5]

      大陆手机号: 1\d{10}

      大陆身份证号: ^[1-9]\d{14}$|^[1-9]\d{16}[1-9xX]$

      非负整数: \d+

      正整数:^[1-9]\d*

      负整数: ^-[1-9]\d*

      整数:^-?\d*

      小数: (-?\d*)(\.\d+)?

     4.使用正则表达式不错的案例 

    View Code
     1 请编写一个JavaScript 函数toRGB,它的作用是转换CSS中常用的颜色编码。 要求:
     2 
     3 alert(toRGB("#0000FF"));          // 输出 rgb(0, 0, 255)
     4 alert(toRGB("invalid"));          // 输出 invalid
     5 alert(toRGB("#G00"));              // 输出 #G00
     6 
     7 function  toRGB(val){
     8       var reg1 = /^#([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;
     9       var reg2 = /^#([0-9A-F])([0-9A-F])([0-9A-F])$/i;
    10       var reg3 = /[0-9A-F]{2}/g;
    11       if(reg2.test(val)){
    12         val = val.replace(reg2,"$1$1$2$2$3$3");
    13       }
    14       
    15       if(reg1.test(val)){
    16         var match = val.match(reg3);
    17         val =  'rgb('+[parseInt(match[0],16),parseInt(match[1],16),parseInt(match[2],16)].join(',')+')';
    18       } 
    19       
    20       return val;
    21 }

        

              

  • 相关阅读:
    【Java每日一题】20161027
    【Java每日一题】20161026
    【Java每日一题】20161025
    【Java每日一题】20161024
    【Java每日一题】20161021
    【Java每日一题】20161020
    【Java每日一题】20161019
    Xen们和Open Stack们
    Linux内存管理子系统
    Python学习资料收集
  • 原文地址:https://www.cnblogs.com/shamoguying1140/p/3056106.html
Copyright © 2020-2023  润新知