阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JavaScript 正则的组成

      正则的组成

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

      正则是由元字符组成的:

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

      什么是[元字符]:在//之间具有意义的一些字符

      • 1、具有特殊意义的元字符

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

        • ^:以某一个元字符开始

        • $:以某一个元字符结尾

        • \n:匹配一个换行符

        • .:除了\n以外的任意字符

            var reg = /^0.2$/;//->以0开头,以2结尾,中间可以是除了\n的任意字符
            console.log(reg.test("0.2"));//->true
            console.log(reg.test("0和2"));//->true
            console.log(reg.test("0-2"));//->true
            console.log(reg.test("0sdhfohsdf-2"));//->false
          		
            reg = /^0\.2$/;//->以0开头,以2结尾,中间是.的字符串;
            console.log(reg.test("0.2"));//->true
            console.log(reg.test("0-2"));//->false
          
        • ():功能一:分组 ->把一个大正则本身划分成几个小的正则

            var reg1 = /^\d+zhu\d+$/;
            var reg2 = /^(\d+)zhu(\d+)$/;
          		
            //匹配
            console.log(reg1.test("2zhu3"));//true
            console.log(reg2.test("2zhu4"));//true
            //捕获
            console.log(reg1.exec("2zhu3"));//["2zhu3", index: 0, input: "2zhu3"]
            console.log(reg2.exec("2zhu4"));//["2zhu4", "2", "4", index: 0, input: "2zhu4"]
          
          • 功能二:改变|的优先级;功能:替换,“或"操作字符具有高于替换运算符的优先级,使得"m|food"匹配"m"或"food”。若要匹配"mood"或"food",请使用括号创建子表达式,从而产生"(m|f)ood"。
        • x|y:x或者y中的一个

        • ^x|yz$:x开头、yz结尾、x开头并且yz结尾、三种都可以

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

        • \b:匹配一个边界符

        • \w:数字、字母、下划线中的任意一个字符 [0-9a-zA-Z_]

        • \s:匹配一个空白字符 空格、一个制表符、换页符…

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

        • *:出现零到多次

        • +:出现一到多次

        • ?:出现零次或者一次

        • {n}:出现n次

        • {n,}:出现n到多次

        • {n,m}:出现n到m次

            var reg = /^\d+$/;
            console.log(reg.test("2015"));//->true
          

      一个简单的验证手机号的正则:11位数字,第一位是1

      var reg = /^1[3|4|5|7|8]\d{9}$/;//第一位以1开始,第二位可以是34578中的任意一位,后面再加9个数字;
      console.log(reg.test("12345678901"));//false
      console.log(reg.test("13856487589"));//true
      console.log(reg.test("12114567895"));//false
      
      目录
      目录