• 38.正则的元字符和一些简单的应用


    每一个正则表达式都是由元字符和修饰符组成的

    1.元字符:在//之间具有意义的一些字符

      1)具有特殊意义的元字符

        a):转义字符,转译后面字符所代表的含义

        b)^:以某一个元字符开始

        c)$:以某一个元字符结尾

        var reg = /d/; // 包含一个0-9之间的数字
    
        console.log(reg.test(""zhufeng2015))
    
        var reg = /^d$/; //只能是一个0-9之间的数字
    
        console.log(reg.test("0")) // true
    
        console.log(reg.test("012")) // false
    
        var reg = /^ddd$/; //只能是三个0-9之间的数字

        d) :匹配一个换行符

        e).:除了 以外的任意字符

        var reg = /^0.2$/;  // ->以0开头,以2结尾,中间可以是除了
    的任何字符
        console.log(reg.test("0.2")); // ->true
        console.log(reg.test("0-2")); // ->true
    
        var reg = /^0.2$/;  // ->只能是0.2
    
        console.log(reg.test("0.2")); // ->true
    
        console.log(reg.test("0-2")); // ->false

        f)():分组->把一个大正则本身划分成几个小的正则

        var reg = /^(d+)zhangsan(d+)$/  // 2015zhangsan2014  true

        g)(?:):分组

        h)x|y:x或者y中的一个

        i)[xyz]:x或者y或者z中的一个

        j)[^xyz]:除了三个以外的任何一个字符

        k)[a-z]:a-z之间的任何一个字符

        l)[^a-z]:除了a-z之间的任何一个字符

        m)d:一个0-9之间的数字 D:除了0-9之间的数字以外的任何字符

        n):匹配一个边界符 ”w1 w2 w3“

        o)w:数字,字母,下划线中的任意字符 [0-9a-zA-Z_]

        p)s:匹配一个空白字符  空格,一个制表符(四个空格就是一个制表符),换页符...

      2)代表出现次数的量词元字符

        a)*:出现零到多次

        b)+:出现一到多次

        c)?:出现零次或者一次

        d){n}:出现n次

        e){n,}:出现n到多次

        f){n,m}:出现n到m次

        var reg = /^d+$/;只能是一个或者多个数字
        console.log(reg.test("2015")); // true
        // 一个简单的验证手机号的正则:11位数字,第一位是1
        var reg = /^1d{10}$/;

    2.元字符应用

      1)有效数字的正则:正数,负数,零,小数

        a)可以出现小数点,也可以不出现小数点,但是一旦出现后面必须跟着一位或者多位数字

        b)最开始可能有+或者-也可以没有

          var reg = /^[+-]?$/

        c)整数部分,一位数可以是0-9之间的一个,多位数不能以0开头

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

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

        总结规律:

          1)在中括号中出现的所有的字符都是代表本身意思的字符,没有特殊的含义

            var reg = /^[.]$/

            console.log(reg.test("1")) // false

            console.log(reg.test(".")) // true

          2)() 分组的作用

            a)改变x|y的默认的优先级

              var reg = /^18|19/

              console.log(reg.test("18")) // true

              console.log(reg.test("19"))   // true

              console.log(reg.test("181")) // true

              console.log(reg.test("189")) // true

              console.log(reg.test("119")) // true

              console.log(reg.test("819")) // true

              console.log(reg.test("1819")) // true

              var reg = /^(18|19)$/  // 此时只能是18或者19了

          3)[]中括号中不识别两位数

            var reg = /^[12]$/ // 1或者2中的一个 

            var reg = /^[12-68]$/ // 1,2-6中的一个,8 三个中的一个

            var reg = /^[w-]$/; // 数字,字母,下划线,- 中的一个

            console.log(reg.test("-"))// true

      

  • 相关阅读:
    2012年互联网教育行业观察
    SharePoint 2013的简单介绍
    让Node.js在Azure上运行3
    让Node.js在Azure上运行2
    有一个字符串 "I am a good man",设计一个函数,返回 "man good a am I"。
    json序列化与反序列化
    golang连接mysql数据库进行查询
    简单的WCF服务
    百钱买百鸡问题
    大叔程序员的第九天 @广播启动Activity
  • 原文地址:https://www.cnblogs.com/z-dl/p/8967928.html
Copyright © 2020-2023  润新知