1.限定符
提出问题:匹配一个连续出现的字符,如 6个连续出现的数字“458925”。
解决方案1:正则对象/\d\d\d\d\d\d/gi。
存在的问题:重复出现的“\d”既不便于阅读,书写又繁琐。
解决方案2:使用限定符(?、+、*、{ })完成某个字符连续出现的匹配。正则对象/\d{6}/gi。

2.贪婪与懒惰匹配
当点字符(.)和限定符连用时,可以实现匹配指定数量范围的任意字符。
举例:“^hello.*world$”。
说明:可匹配从hello开始到world结束,中间包含零个或多个任意字符的字符串。
正则在实现指定数量范围的任意字符匹配时,支持贪婪匹配和惰性匹配两种方式。
所谓贪婪表示匹配尽可能多的字符,而惰性表示匹配尽可能少的字符。在默认情况下,是贪婪匹配。
若想要实现惰性匹配,需在上一个限定符的后面加上“?”符号。
var str = 'webWEBWebwEb';
var reg1 = /w.*b/gi; // 贪婪匹配
var reg2 = /w.?b/gi; // 懒惰匹配
//输出结果为:["webWEBWebwEb", index: 0, input: "webWEBWebwEb"]
console.log(reg1.exec(str));
//输出结果为:["web", index: 0, input:"webWEBWebwEb"]
console.log(reg2.exec(str));
括号字符
在正则表达式中,被括号字符“()”括起来的内容,称之为“子表达式”。
改变作用范围
①改变作用范围前
正则表达式:catch|er
可匹配的结果:catch、er
②改变作用范围后
正则表达式:cat(ch|er)
可匹配的结果:catch、cater
分组
① 分组前
正则表达式:abc{2}
可匹配的结果:abcc
② 分组后
正则表达式:a(bc){2}
可匹配的结果:abcbc
参考代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>限定字符1</title>
</head>
<body>
<script type="text/javascript">
var str = "123456789abc";
var reg = /\d\d\d\d\d\d/gi;
var reg1 = /\d{6}/gi;
console.log(str.match(reg));
console.log(str.match(reg1));
var str2 = "ababcabccabcccabcccc";
/*?:匹配前面字符零次或者一次*/
var reg2 = /abc?/gi;
console.log(str2.match(reg2));//(5) ["ab", "abc", "abc", "abc", "abc"]
/*+:匹配前面字符一次或者多次*/
var reg3 = /abc+/gi;
console.log(str2.match(reg3));//(4) ["abc", "abcc", "abccc", "abcccc"]
/**:匹配前面字符零次或者多次*/
var reg4 = /abc*/gi;
console.log(str2.match(reg4));//(5) ["ab", "abc", "abcc", "abccc", "abcccc"]
/*{n} 匹配前面字符n次*/
var reg5 = /abc{3}/gi;
console.log(str2.match(reg5));//(2) ["abccc", "abccc"]
var reg6 = /abc{4}/gi;
console.log(str2.match(reg6));//["abcccc"]
/*{n,}匹配前面字符至少n次*/
var reg7 = /abc{2,}/gi;
console.log(str2.match(reg7));//(3) ["abcc", "abccc", "abcccc"]
/*{n,m} 匹配最少n次,最多m次*/
var reg8 = /abc{2,4}/gi;
console.log(str2.match(reg8));//(3) ["abcc", "abccc", "abcccc"]
console.log()
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>小括号的使用</title>
<!--在正则表达式中,被括号字符“()”括起来的内容,称之为“子表达式”。-->
</head>
<body>
<script type="text/javascript">
var str1 = "abac";
var reg1 = /ab|c/g;
console.log(str1.match(reg1));//(2) ["ab", "c"]
var reg2 = /a(b|c)/g;//改变限定符作用范围
console.log(str1.match(reg2));//(2) ["ab", "ac"]
var str2 = "abccabcbc";
var reg3 = /abc{2}/g;
console.log(str2.match(reg3));//["abcc"]
var reg4 =/a(bc){2}/g;
//分组
console.log(str2.match(reg4));//["abcbc"]
</script>
</body>
</html>

