正则常用表达式介绍
^
: 表示一个字符串
的开始;例如^1
,表示以1开始$
:表示正则的结束\
:这是一个引用符
,将列出的元素作为普通字符来进行匹配;例如\$
,表示匹配美元符号,而不是行尾;\w
:表示匹配字母或数字下划线或汉字,等价于[^A-Za-z0-9_]
;(能否匹配汉字,要视当前用户的操作系统及应用环境而定)\d
:用于匹配数字,表示数字[0-9]
中的任意一位;\s
:表示一个空白字符(可能是空格、制表符、其他空白),用于匹配空白字符;\\s
:表示字符\
和字符s
;因为\
在正则有特殊意义,所以需要转义,就写成\\s
;\\d
同理也是如此;\n
: 表示换行符\r
:表示回车符\t
:表示制表符{}
:表示指定匹配字符的数量;例如{6}
,表示指定匹配数量为6个才行[]
:表示需要匹配的字符,例如[0-9]
,表示需要匹配的字符必须为数字0-9
的任意一位()
:用来提取匹配的字符串,表达式里有几个()
就有几个相应的匹配字符串,通常为一组。例如:()+
,表示一组结束,可以重复一次或多次。.
:表示任意字符,可以匹配任何单个字符;例如b.t
,可以匹配到bat
,but
,bot
,但是不能匹配到boot
*
:表示匹配0个或多个
正好在它前面的那个字符;例如s*
,表示匹配s
0个或多个?
:表示匹配0个或1个
正好在它前面的那个字符;例如s?
,表示匹配s
0个或多个
电话号码的正则校验
分析:
^1
:电话号码以1开头
[3456789]
:匹配3456789中任意一个
\d
:表示数字[0-9]中的任意一位
\d{9}
: 表示后面的9位只能是9位数字
test()
方法用于检测一个字符串是否匹配某个模式, 匹配返回 true
,否则返回false
function checkPhone(tel) {
var reg = /^1[3456789]\d{9}$/;
if(!(reg.test(tel))) {
return false;
}
return true;
}
console.log(checkPhone(13522623363)) //true
身份证的正则校验
身份证相关介绍:
- 身份证号码分为
15位
和18位
两种 一代
身份证号码是十五位
,2013年1月1日
开始,咱们中国全面停止使用一代
身份证了。18位
身份证号最后一位
是校验位
,可能是数字
或字符X
分析:
^
:任意数开头
\d{17}
:17位
只能是数字[0-9]
中任意一位
|
:指明两项之间的一个选择
\d|X|x
: 表示数字[0-9]
中任意一位
,或者大写X
,或者小写x
$
:正则的结束
function checkIdCard(card) {
var reg = /(^\d{17}(\d|X|x)$)/;
if(reg.test(card) === false) {
return false;
}
return true;
}
邮箱的正则校验
分析:
^
: 表示正则的开始
[a-zA-Z0-9_-]+
:邮箱名称由 多个字母、数字、下划线和中横线
组成;多次
出现使用 + 号
表示
@
:邮箱名称后面紧跟一个@
符号
[a-zA-Z0-9_-]+
: 域名部分可以出现和邮箱名称相同的内容
;
\.[a-zA-Z0-9_-]+)+
: 域名后紧跟.
符号;同时也存在多级域名的情况。
$
:正则的结束
function checkEmail(val) {
var reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if(!(reg.test(val))) {
return false;
}
return true;
}
console.log(checkEmail('223@qq.cn')); // true