每一个正则表达式都是由元字符和修饰符组成的
元字符:d
常用的元字符:
:代表转义符
^:以某一个元字符开始
$:以某一个元字符结尾
.:除了 以外的任意字符,去除换行符
:换行符
():分组
[^1|3]:除了1和3的其他
[.]:确定是一个点
D:除了数字以外的其他字符
:匹配一个边界符
w:数字,字母,下划线的任意一个字符[0-9a-zA-Z_]
s:匹配一个空白符,一个制表符(tab键),空格,换页符
量词元字符:6个
*:代表出现次数的元字符,表示出现0到多次,0,1,2,3,可以不出现
+:出现1到多次
?:出现0或者一次
{n}:出现n次
{n,}:出现n到多次
{n,m}:出现n到m次
d:代表0-9的数字,D:代表
修饰符:
g:全局global,全局匹配
i:忽略大小写匹配
m:多行匹配
//exec
var reg=/d+?/g;
var str="fgwhfek29311bjfy49857311p5283ywe7ty";
var ary=[];
var res=reg.exec(str);
while(res){
ary.push(res[0]);
res=reg.exec(str);
}
console.log(ary);
?:量词取消正则捕获的贪婪性
//match
console.log('-------');
var reg=/d+?/g;
var str="fgwhfek29311bjfy49857311p5283ywe7ty";
var ary=[];
var res=str.match(reg);
var reg=/^(d{2})(d{4})(d{4})(d{2})(d{2})(?:d{2})(d)(d|X)$/;
console.log(reg.exec('412420198309102342'));
"?:":只匹配不捕获
var reg=/^(d{2})(d{4})(d{4})(d{2})(d{2})(?:d{2})(?:d)(?:d|X)$/;
console.log(reg.exec('412420198309102342'));
var reg=/^(d{2})(d{4})(d{4})(d{2})(d{2})(?:d{2})(?:d)(?:d|X)$/;
console.log('412420198309102342'.match(reg));
var reg1=/qiqi(d+)/g;
var str="qiqi123qiqi0998qiqi8239";
console.log(reg1.exec(str));
console.log(reg1.exec(str));
console.log(reg1.exec(str));
console.log(str.match(reg1));
/*
(6) ["412420198309102342", "41", "2420", "1983", "09", "10", index: 0, input: "412420198309102342"]
["412420198309102342", "41", "2420", "1983", "09", "10", index: 0, input: "412420198309102342"]
["qiqi123", "123", index: 0, input: "qiqi123qiqi0998qiqi8239"]
["qiqi0998", "0998", index: 10, input: "qiqi123qiqi0998qiqi8239"]
["qiqi8239", "8239", index: 21, input: "qiqi123qiqi0998qiqi8239"]
["qiqi123", "qiqi0998", "qiqi8239"]
*/
var reg=/([a-z])([a-z])21/;
console.log(reg.test('abba'));
var reg=/([a-z])([0-9])(.)13/;
console.log(reg.exec('a0eae'));