1.正则表达式
(1).正则表达式的声明和使用
通过构造函数定义
var 变量名= new RegExp(/表达式/);
通过直接量定义(简单方便,我们一般用这个)
var 变量名= /表达式/;
常用方法,可用于检测传入的字符串是否符合该规则并返回布尔值
exp.test("要检测的字符串")
(2)预定义类
@预定义类和转义符
. [^\n\r] 除了换行和回车之外的任意字符
\d [0-9] 数字字符digit
\D [^0-9] 非数字字符
\w [a-zA-Z0-9_] 单词字符(所有的字母数字和_) word
\W [^a-zA-Z0-9_] 非单词字符
\s [\f\r\n\t\v] 不可见字符 space
\S [^\f\r\n\t\v] 可见字符
(3)字符类
@字符类
简单类[abc] 表示该位置可以出现的字符
负向类[^abc] 表示该位置不可以出现的字符
范围类[a-e] 表示该位置可以出现的字符的范围
组合类[a-xA-E0-9] 范围类的组合
(4). 边界 量词 括号
@边界
^ 会匹配行或者字符串的起始位置
^只有在[]内才表示非 在外边表示开始
$ 会匹配行或字符串的结尾位置
^$在一起 表示必须是这个(精确匹配)
-------------------------------------------------
@量词
"*" 重复零次或更多 x>=0
"+" 重复一次或更多次 x>=1
"?" 重复零次或一次 x=(0||1)
{n} n次 x=n
{n,} 重复n次或更多 x>=n
{n,m} 重复出现的次数比n多但比m少 n<=x<=m
@括号总结
()表示一组
[]表示一个字符的位置
{}表示次数
(5)常见项目匹配项
匹配国内电话号码:
/^0\d{2,3}-\d{7,8}$/
匹配姓名:
/^[\u4e00-\u9fa5]{2,}$/
匹配腾讯QQ号:
/^[1-9]\d{4,10}$/
匹配手机号:
/^(13[0-9]|14[57]|15[0-9]|18[0-9])\d{8}$/
匹配邮箱:
/^\w+([+-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/