常用表达式
表达式 | 描述 |
---|---|
[a-z] | 查找任何从小写 a 到小写 z 的字符 |
[A-Z] | 查找任何从大写 A 到大写 Z 的字符 |
[0-9] | 查找任何从 0 至 9 的数字 |
[abc] | 查找括号内的任意一个字符 |
[^abc] | 查找除了括号内的任意字符 |
常用的元字符(特殊字符)
字符 | 描述 |
---|---|
\w | 匹配数字、字母、下划线 |
\W | 匹配非数字、字母、下划线 |
\d | 匹配数字 |
\D | 匹配非数字 |
\s | 匹配空白字符(空格、换行) |
\S | 匹配非空白字符 |
\n | 匹配换行符 |
常用的限定符
字符 | 描述 |
---|---|
* | 匹配前面的子表达式零次或多次 |
+ | 匹配前面的子表达式一次或多次 |
? | 匹配前面的子表达式零次或一次 |
{n} | 匹配确定的 n 次 |
{n,} | 至少匹配 n 次 |
{n,m} | 最少匹配 n 次且最多匹配 m 次 |
常用的修饰符
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配。 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
m | 执行多行匹配。 |
其他
修饰符 | 描述 |
---|---|
^ | 以...开始 |
$ | 以...结束 |
以下是一些简单示例 //匹配电话号码 var str1 = /^[1]\d{10}$/; //测试正则表达式 var testStr1 = "13037290702"; var testStr2 = "1303729070" if(str1.test(testStr1)){ console.log("手机号1匹配成功!") }else{ console.log("手机号1匹配失败!") } if(str1.test(testStr2)){ console.log("手机号2匹配成功!") }else{ console.log("手机号2匹配失败!") }
//检验性别(男或女) var str2 = /^(man|woman)$/i;//判断性别并执行对大小写不敏感 var testStr3 = "man"; var testStr4 = "neutral"; if(str2.test(testStr3)){ console.log("性别1匹配成功!") }else{ console.log("性别1匹配失败!") } if(str2.test(testStr4)){ console.log("性别2匹配成功!") }else{ console.log("性别2匹配失败!") }
//检验邮箱 var str3 = /^[a-zA-Z0-9\._+]{5,16}@\w+\.(com|net|cn)$/; var testStr5 = "2769695382@qq.com"; var testStr6 = "123"; if(str3.test(testStr5)){ console.log("邮箱1匹配成功!"); }else{ console.log("邮箱2匹配失败!"); } if(str3.test(testStr6)){ console.log("邮箱1匹配成功!"); }else{ console.log("邮箱2匹配失败!"); }
//验证生日 var str4 = /^[2-9][0-9]{3}[1-12]{2}[1-31]{2}$/; var test1 = "20021211"; var test2 = "19991212"; if(str4.test(test1)){ console.log("生日1匹配成功!"); }else{ console.log("生日1匹配失败!"); } if(str4.test(test2)){ console.log("生日2匹配成功!"); }else{ console.log("生日2匹配失败!"); }