正则中的()、[]、{}

() 代表分组
分组(子项)
用小括号表示分组

可以提权: (1+1) * 5

从左往右来数,有几个()就有几个分组

/(d+)D+(((d)+)((D))+)(d+)/

在replace中,有几个分组,$0后面的参数就是这几个分组的值

当分组和形参对应完之后,又是index、input、undefined

注意:
在分组中,如果分组的后面直接加了量词,那么结果为量词的终点位置。

如:
let str = '2018.--/11---..5';
str.replace(/((d+)+)D+(d+)D+(d+)/,$0,$1,$2)
$1 是2018
$2 ((d)+)是8
[] 中只代表一个

数字0-9

字母:a-z 97-122

大写字母:A-Z 65-90

大写小写的范围: [A-Za-z]
如果要用匹配18-110以内的数字
( /^1[89]$|^[2-9][0-9]$|^10[0-9]$|^110$/).test(string);
  (/^((1[89])|([2-9][0-9])|(10[0-9])|(110))$/.test(string);
{} 量词的范围

{n,m}
{0,1} == ? 最小没有最大1个

{1,} == + 最小1个最多不限

{1,3} 最少1个,最多3个

{0,} * 最小没有,最多无限

{9} 最大最小都是9
代码的世界很精彩,好的代码需要慢慢的打磨。
原文地址:https://www.cnblogs.com/Allisson/p/9948753.html