# 正则的组成 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结尾、三种都可以** - [xyz]:x或者y或者z中的一个 - [^xyz]:除了三个以外的任何一个字符 - [a-z]:a-z之间的任何一个字符 - [^a-z]:除了a-z之间的任何一个字符 - \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