(一)、创建正则表达式:
备注:表单中的正则阻止默认行为
可用 ==> e.preventDefault(); 也可用 ==> return false;(这个写在最后面)
1、字面量 ==> var reg = /字符串||正则表达式/gi;
2、构造函数 ==> var reg = new RegExp("字符串","gi");
3、构造函数变量写法 ==> var reg = new RegExp(变量,"gi");
备注: g 全局匹配
i 不区分大小写
(二)、字符串的方法:
1、indexOf(keyword[,startIdx]) ==> 返回第一次匹配字符在字符串中的索引,匹配不到返回-1。
2、search(keyword) ==> 返回第一次匹配字符在字符串中的索引,支持正则表达式。
例如:str.search(/d/)
3、match(字符串||正则) 默认匹配字符串,返回一个数组。
返回值:
0 ==> 是所匹配的字符
index ==> 匹配第一个字符所在的索引
input ==> 对字符串的引用
全局匹配(g):返回一个所有满足匹配条件的字符串组成的数组,如果匹配不到则返回null
例如:str.match(/[^s]+/g)
(三)、正则匹配规则:
1、字符类
小写字母的正则:
(1.1). ==> 匹配换行外的任意字符。
(1.2)d ==> 数组0-9。
(1.3)w ==> 包含字母、数字、下划线
(1.4)s ==> 空格
1 例如:str.match(/[^s]+/g)
(1.5) ==> 匹配数字或单词边界(空格、汉字)。
1 例如:_str.match(/1[3-8]d{9}/g)
备注:以上所有字符类都只是匹配“一个”字符,要全局,需加(g)
大写字母的正则:
(1.5)W : 非数字字母和下划线字符
(1.5)D : 非数字
(1.5)S : 空格以外的字符
(1.5)B : 匹配非单词边界。
PS:以上所有字符类都只是匹配“一个”字符 ,需要匹配全部,需要加“g“全局
2、特殊符号
1、{} ==>花括号 ==> 表示数量,默认贪婪模式(会尽可能多的去匹配结果)
备注:a是数字
(1.1) ==> {a} ==> 表示匹配a个
(1.3)==> {a,b} ==> 表示匹配a到b个
(1.4)* ==> 代表0个或0个以上 <===>{0,}
(1.5)+ ==> 代表1个或1个以上 <===>{1,}
(1.6)? ==> 代表0个或1个 <===>{0,1}
例如:str.match(/w{5,}/g)
2、+ ==> {1,} ==> 代表1个或1个以上
3、* : {0,}
4、? : {0,1}
5、[] ==> 表示或者,表示满足中括号内其中一个条件即可 (5.1)、- ==> 表示区间
(5.2)、^ ==> 表示非
6、(): 表示分组(n是以最左边括号出现的顺序排列)。
(6.1)、$1 ==> 表示第一个分组
(6.2)、$num ==> 表示第n个分组(不能写在正则表达式里)
(6.3)、
um ==> 在正则分组后面使用,表示对第n个分组的引用(一定要写在正则表达式里)
(6.4)、(?:) ==> 可用来减少括号分组
备注:编写的正则分组数量越少越好
7、锚点定位:
(7.1)、^ ==> 表示以什么开头
(7.2)、$ ==> 表示以什么结尾
8、| ==> 表示或者
m5
9、表示数量,对前一个字符计数
(9.1)* ==> 代表0个或0个以上 <===>{0,}
(9.1)+ ==> 代表1个或1个以上 <===>{1,}
(9.1)? ==> 代表0个或1个 <===>{0,1}