JS正则表达式小运用

使用match()方法来返回匹配结果。如果匹配上,直接扔出来,下次开始位置是扔出来的下一位开始;如果没有匹配上,从本次匹配的下一位开始继续匹配。
实例一
var str = 'abbab';
var pattern = /[a-z]{2}/g;		//筛选出连续的两个字符都是小写字母即可
console.log(str.match(pattern));	//Array [ "ab", "ba" ]
var pattern1 = /[a-z][a-z]/g;   //与上面一样
console.log(str.match(pattern1));	//Array [ "ab", "ba" ]
var pattern2 = /[a-z]{1,2}/g;		//连续出现最少一个小写字母,最多出现两个小写字母(贪婪模式)
console.log(str.match(pattern));	//Array [ "ab", "ba" ,"b" ]
var pattern3 = /([a-z]){2}.([a-z])/g;	//筛选第一个、第二个字符都是小写字母,第三个为任意字符,第四个字符也是小写字母的字符串
console.log(str.match(pattern3));	//Array [ "abba" ]
实例二
var str = 'abbab';
var pattern1 = /([a-z]).\1/g;	//筛选第一个字符是小写字母,第二个为任意字符,第三个字符与第一个字符一样的字符串
console.log(str.match(pattern));	//Array [ "bab" ]
var pattern2 = /([a-z])([a-z]).\1/g; //筛选第一个字符、第二个字符都是小写字母,第三个字符为任意字符,第四个字符与第一个字符一样的字符串
console.log(str.match(pattern2));	//Array [ "abba" ]
var pattern3 = /([a-z]){2}.\1/g;	//筛选第一个字符、第二个字符都是小写字母,第三个字符为任意字符,第四个字符与第二个字符一样的字符串
console.log(str.match(pattern3));	//Array [ "bbab" ]
实例三
var str = 'hello hellohelloworld';
var pattern1 = /(hello)+/ig;	//筛选出至少出现一次的'hello'字符串(贪婪模式)
console.log(str.match(pattern1));	//Array [ "hello", "hellohello" ]
var pattern2 = /(hello)+?/ig;	//筛选出至少出现一次的'hello'字符串(非贪婪模式)
console.log(str.match(pattern2));	//Array(3) [ "hello", "hello", "hello" ]
实例四
var str = 'acbycby';
var pattern1 = /([a-z]){3}(y).\1\2/g;  //筛选出第一个、第二个、第三个字符都是小写字母,第四个为字符'y',第五个为任意字符,第六个为与第三个一样的字符,第七个为与第四个一样的字符
console.log(str.match(pattern1)); 	//Array [ "acbycby" ]
var pattern2 = /([a-z]){3}(y).\1\2/;	//不加'g',意思变成筛选出第一个、第二个、第三个字符都是小写字母,第四个为字符'y',第五个为任意字符,第六个为与第三个一样的字符,第七个为与第四个一样的字符.并且把'\1'的值(也就是第六个字符)'\2'的值(也就是第七个字符)输出来.(match()方法与exec()方法输出结果一样)
console.log(str.match(pattern2));	//Array(3) [ "acbycby", "b", "y" ]
console.log(pattern2.exec(str));		//Array(3) [ "acbycby", "b", "y" ]
如果圆括号后边有次数,在使用\n引用的时候,用的是第n个圆括号最后一次匹配的结果,可以在不加g修饰的match中的数组中除了第一个之外的其他元素中拿到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值