目录
前言
当我们在编写前端表单的时候遇到一些像手机号码、电话、电子邮箱、身份证号码这类需要一定的格式校验的字段时,通常我们需要自定义一些规则,这时候就需要用到正则表达式了。以前我都是直接百度搜索正则表达式,然后复制加黏贴,搞定~是不是很爽。只是因正则表达式写起来比较麻烦,而且规则较多,而且网上有现成的。但是需求总是会变的,正确理清楚它们的规则,用起来才得心应手。
概述
元字符串
限定符
参数
其他字符
举一些栗子
手机号码
var pattern = /0?(13|14|15|18|17)[0-9]{9}/;
var right = '13265456162';
var err = '11123224332';
console.log(pattern.test(right)); //true
console.log(pattern.test(err)); //false
邮箱
var pattern = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/;
var rightEmail = '112@qq.com';
var errEmail = '112@dcom';
console.log(pattern.test(rightEmail)); //true
console.log(pattern.test(errEmail)); //false
身份证
var pattern = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/;
var right = '110101199003078398';
var err = '4452211991123265554';
console.log(pattern.test(right)); //true
console.log(pattern.test(err)); //false
捕获组
正则表达式除了能验证一些字符串是否符合规则之外,还能用来提取。补充一个概念,捕获组。
捕获组?其实就是正则表达式中被小括号括住的部分。我们就可以通过这样写正则表达式,实现“匹配”和“提取”的双重目的: