正则的细节

正则的细节

  1.正则:检验字符串的规则

  2.正则就是有元字符和修饰符构成:(写在//里面的都叫元字符)

  元字符分两种:

    1种是有特殊意义的 例如:/\d/表示数字

    2种没特殊意义 没有特殊意义就是字符本身

  3.特殊意义的元字符

    1.\ 转义字符 转义后面紧跟的字符的意义

    2. \d 有意义(数字) \.无意义(是什么就是什么)

    3.   .  代表除了\n以外的任何单个字符

    4.^以什么什么开头,^读音:kongchu

    5.$ 以什么结束, \$就是$本身,n$就是包含$的结尾;

    6.| 代表或的意思;

  4.带有量词意思的元字符:

    1.? 代表0到1个;

     *代表0到多个;

     +代表1到多个

    {}系列

  5.[]系列元字符;

    [xyz]  代表x或y或z中的任意一个

    [0-9]  代表0到9之间的任意一个

    [a-z]  代表小写a到小写z

    [A-Z]  代表大写A到大写Z

    [A-z]  代表大写A到小写z(不区分大小写)

  6.()分组系列:

    (x|y)  x或y中的其中一个;

  正则的细节:(正则定义的区别)

    var reg=/hello/g    (/hello/)代表元字符 不可以用字符串拼接

      字面量定义

    var reg=new RegExp("hello","g")   ("hello" 代表字符串,可以通过字符串拼接)

      对象实例定义

  3.       /./和/\./的区别?

    . 任意字符

    \.就是一个点

  4[.],[+]的意思

    .和+在正则里面是特殊的元字符;

    . 是任意字符  +是 量词代表多个

    在[.]和[+]就是这个字符本身没有意义;

  5.   |代表或

    [2|3]代表2或3;

    [12|34]代表1或2|3或4,或者12或者34  

    往往这种情况需要分组()  (^(12)|(34)$)

  6. -的问题:

    /-/就是本身没有意义

    如果[0-9]代表 0到9之间的任意一个数字;

    

  正则的案例:

    1.写一个12到65周岁的正则:

      var reg=/^(1[2-9])|(2-5[0-9])|(6[0-5])/

      var st="13"

      console.log(reg.test(st))

    2.写一个正常数字的正则;

      var reg=/^[+-]?([0-9]|[1-9]\d+)(\.\d+)?$/

      var st="-20.13"

      console.log(reg.test(st))

    3.写一个邮箱验证

      var reg=/^[a-zA-Z](\w|-){5,17}@((136|126).com)|(yeah.net))$/

      var st="as122@136.com"

      console.log(reg.test(st))

  总结:正则每写完一部分就用()包起来     -不是特殊符

  使用定时器的地方先清定时器,防止定时器叠加

 
 
 
好文要顶 已关注 收藏该文  
posted @ 2018-12-21 10:29  請叫我官人  阅读(105)  评论(0编辑  收藏  举报