1.正则:检索字符串的一条规则。
2.正则就是由元字符和修饰符构成的
3.写在//里面的都叫元字符,与元字符两种 一种是有特殊意义,一种没有特殊意义,没有特殊意义的就是字符本身。
特殊意思的元字符
1. 转义字符 转译后面紧跟的字符的意义 d .
2. .代表除了 以外的任何单个字符
3. d,D, w,W, s, S, b,B
4. ^ 以什么开头 kangchuo
5. $以什么结束 $就是$本身
6. |代表或的意思
带有两次意思的元字符
1. ?代表0到1个
2. *代表0到多个
3. +代表1到多个
4.{}系列
[]系列元字符
[xyz]x或y或z中的任意一个
[0-9]代表0-9之间的任意一个
[a-z]代表小写a到小写z
[A-Z]代表大写A到大写Z
[A-z]代表大写A到写z
()分组系列
(x|y)
正则的细节
1.正则定义的区别
var reg=/hello/g
var reg=new RegExp("hello","g")
前者里面不能引用变量, 后者可以。
2.reg=/^d$/
因为^和$符不占用位置,也就说明开头和结尾之间夹了一个数字,表达一个纯数字
3././和/./的区别
前者代表任意一个字符,后者代表字符串中得有一个.
4.[.],[+]的意思
.和+在正则里是特殊的元字符, . 是任意字符+是量词代表多个。
在[]里面的.和+就是这个字符本身,没有意义。
5.|代表或
[2|3]代表2或3
[12|34]代表1或2|3或4,或者12|34往往这种情况需要分组()
[(12|34)]
[xyz]
6.-的问题
/-/就是-本身。没有意义,如果写在[0-9]代表0到9之间的任意一个数字。
[12-65]代表18到65之间的数字? ? ?
表达的是1或者2-6的数字或者5
案例 1写一个12到65周岁的正则
var reg=/^(1[2-9])|([2-5][0-9])|(6[0-5])$/
var st="66"
console.log(reg.test(st))
案例2写一个正常的数字的正则
+12 -12 23 23.256 6 0.36
var reg=/^[+-]?([0-9]|[1-9]d+)(.d+)?$/
var st="60"
console.log(reg.test(st))