Skip to content

Latest commit

 

History

History
80 lines (58 loc) · 2.8 KB

2.正则的组成.md

File metadata and controls

80 lines (58 loc) · 2.8 KB

正则的组成

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