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

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

可以提权: (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

 

posted @ 2018-11-12 20:11  Allisson-yan  阅读(2241)  评论(0编辑  收藏  举报