JS正则表达式校验电话,身份证、邮箱等集合

正则常用表达式介绍

  1. ^: 表示一个字符串的开始;例如^1,表示以1开始
  2. $:表示正则的结束
  3. \:这是一个 引用符 ,将列出的元素作为普通字符来进行匹配;例如\$,表示匹配美元符号,而不是行尾;
  4. \w:表示匹配字母或数字下划线或汉字,等价于 [^A-Za-z0-9_];(能否匹配汉字,要视当前用户的操作系统及应用环境而定)
  5. \d:用于匹配数字,表示数字 [0-9] 中的任意一位;
  6. \s:表示一个空白字符(可能是空格、制表符、其他空白),用于匹配空白字符;
  7. \\s:表示字符 \和字符 s;因为\在正则有特殊意义,所以需要转义,就写成 \\s\\d同理也是如此;
  8. \n: 表示换行符
  9. \r:表示回车符
  10. \t:表示制表符
  11. {}:表示指定匹配字符的数量;例如{6},表示指定匹配数量为6个才行
  12. []:表示需要匹配的字符,例如[0-9],表示需要匹配的字符必须为数字 0-9的任意一位
  13. ():用来提取匹配的字符串,表达式里有几个()就有几个相应的匹配字符串,通常为一组。例如:()+,表示一组结束,可以重复一次或多次。
  14. .:表示任意字符,可以匹配任何单个字符;例如 b.t,可以匹配到 bat,but,bot,但是不能匹配到 boot
  15. *:表示匹配 0个或多个 正好在它前面的那个字符;例如s*,表示匹配s 0个或多个
  16. ?:表示匹配0个或1个 正好在它前面的那个字符;例如s?,表示匹配 s0个或多个

电话号码的正则校验

分析:
^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

身份证的正则校验

身份证相关介绍:

  1. 身份证号码分为15位18位两种
  2. 一代身份证号码是十五位2013年1月1日开始,咱们中国全面停止使用一代身份证了。
  3. 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值