字符类---预定义类
[^\n\r] :除了换行和回车之外的任意字符。
\d:预定义类,表示数字。
\D:非数字类[^0-9];
\s:不可见字符[\f\r\n\t\v]
\S:可见字符[^\f\r\n\v\t]
\w:单词字符,所有的字母数字和_ [0-9a-zA-Z_]
\W:非单词字符。[^0-9a-zA-Z_]
特殊字符
\t: /\t/ 制表符
\n: /\n/换行符
\r:/\r/回车符
\f:/\f/换页符
\v:/\v/ 垂直制表符。
字符类-简单类
[]整体对应一个字符里面的内容表示该位置是那些字符。
字符类-负向类
括号内前面加^表示取反,表示匹配的内容不能有这些。
字符类-组合类
用中括号匹配不同类型的单个字符[]
边界
^会匹配行或者字符串的 起始位置
$会匹配行或者字符串的结尾位置。
量词:
“*” :重复0次或多次 x>=0
"+":重复1次或多次 x>=1
"?":重复0次或者1次 x = (0||1)
{n}: n次 x=n
{n,}:重复n次或多次 x >= n
{n,m}:重复出现的次数比n多比m少。 n<=x<=m
i:不区分大小写。
g:全局匹配。
案例1:匹配电话号码:开头3或4位(首位为0)后面7或8位。手机是11位,包括13,14,15,18开头的
var r = /^((0\d{2,3}-\d{7,8})|(1[3458]\d{9}))$/
案例2:验证姓名,只能是汉字,字数2-3个。
var r = /^[\u4e00-\u9fa5]{2,3}$/;
案例3:验证邮箱
var r3 = /^\w+([-+.]\w)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;