[] 中括号
匹配这个[]集合中的任一一个字符,[a-z] 匹配小写字母。
相反意思:使用^,[^xyz] 不匹配这个集合中的任何一个字符
{} 大括号
用于匹配次数,结合中括号使用比较多。
{n} 精确匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
中括号和大括号综合使用场景
//用户名是小写字母,长度不超过20个字符
[a-z]{1,15}
//qq号码:最低5位数,最高14位数。全部是数字,不能是0开头
[1-9][0-9]{4,14}
//信用卡:全部是数字,长度是13-16
[0-9]{13,16}
匹配开头和结尾
^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"
//以5开头的万事达卡,共16位
^5[1-5][0-9]{14}
//银联卡:62开头,数字结尾
^62[0-5]\d{13,16}$
//密码:字母开头,长度在6~18之间,只能包含字母、数字和下划线
^[a-zA-Z]\w{5,17}$
\d 和\D
\d 匹配一个字数字符,等价[0-9]
\D 匹配一个非字数字符,等价[^0-9]