正则中的()、[]、{}
() 代表分组
分组(子项)
用小括号表示分组
可以提权: (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
代码的世界很精彩,好的代码需要慢慢的打磨。