1. 确定数量
{m}:只出现m次
{m,n}: m<=num<=n 中间不能有空格
{m,}:num>=m , 至少出现m次
var pwd = '1233klshfjds' // 5-7位
var reg = /[0-9]{5-7}/g // 5<=出现的次数<=7,所有数字
var reg2 = /[0-9]{4,}/g // 数字出现4次以上
console.log(reg.test(pwd)); // false
console.log(reg2.text(pwd)); // true
2. 不确定数量
?: 0-1 0到1次
+: num>=1 1到多次
*: num>=0 0到多次
//{m,n}等价写法
* {0,} ab* 可以匹配到 a 或 abbb
+ {1,} 正则ab+可以匹配到 ab或者abbbb 但匹配不到a
? {0,1}
var str = 'jksdh2';
var reg = /\d+/; // 任意数字>=1
console.log(reg.test(str)); //true
3. 贪婪模式
// 表示次数的量词默认是贪婪的(默认取最大值),在贪婪模式下会尝试可能最大长度取匹配
var str = '19028448askdh545'
var reg = /\d{3,6}/
console.log(str.replace(red,"*")); // *48askdh545 将前面六个全部获取
4. 非贪婪模式
// 量词后面加问号(?)找出长度最小且满足要求的
var str = '82178212jkbcckj';
var reg = /\d{3,6}?/
console.log(str.replace(reg,'*')); //*78212jkbcckj 只找到三个而非六个