一、元字符:
每一个正则表达式都是由元字符和修饰符组成的
[元字符] ->在两个/之间的具有意义的一些字符
reg = /^d$/ //只能是一个0-9之间的数字
1、具有特殊意义的元字符
: 转义字符,转译后面字符所代表的含义
^ : 以某一个元字符开始
$ : 以某一个元字符结尾
: 匹配一个换行符
. : 除了 以外的任意字符
() : 分组 -> 把一个大正则本身划分成几个小的正则
x|y : x或者y中的一个
[xyz] : x或者y或者z中的一个
[^xyz] : 除了三个以外的任何一个字符
[a-z] : a-z之间的任何一个字符
[^a-z] : 除了a-z之间的任何一个字符
d : 一个0-9之间的字符 D 除了0-9之间的数字以外的任何字符
: 一个边界符 "w1 w2 w3"
w : 数字、字母、下划线中的任意一个字符 [0-9a-zA-Z_]
s : 匹配一个空白字符 空格、一个制表符、换页符...
2、代表出现次数的量词元字符
* : 出现零次到多次
+ : 出现1到多次
? :出现零次或者1次
{n} :出现n次
{n,} :出现n到多次
{n,m} :出现n到m次
var reg = /^d+wod+$/;// 123wo234
var reg = /^(d+)wo(d+)$/;
var reg = /^0.2$/ // 以0开头 2结尾,中间可以是除了 的任意字符
var reg = /^d+$/;//只能是多个数字 console.log(reg.test('2017'))//true //一个简单的验证手机号的正则:11位数字,第一位为1 var reg = /^1d{10}$/;
二、元字符应用
[]
1、在中括号中出现的所有的字符都是代表本身意思的字符(没有特殊的含义)。
2、中括号不识别两位数
var reg = /^[12-68]$/ ->代表1、2-6中的一个、8三个中的一个 这个方法是错误的
()
1、分组的作用一: 改变x|y的默认的优先级
var reg = /^18|19$/; //符合条件的有18、19、181、189、119、819、1819
var reg = /^(18|19)$/ //18、19
1、有效数字的正则 正数、负数、零、小数
1)、"."可以出现也可以不出现,但是一旦出现,后面必须跟着一位或者多位数字
2)、最开始可以有+/-也可以没有
3)、整数部分,一位数可以是0-9之间的一个,多位数不能以0开头
正则如下
var reg = /^[+-]?(d|([1-9]d+))(.d+)?$/