聊一聊JS正则表达式

126 阅读1分钟

前言

当我们在编写前端表单的时候遇到一些像手机号码、电话、电子邮箱、身份证号码这类需要一定的格式校验的字段时,通常我们需要自定义一些规则,这时候就需要用到正则表达式了。以前我都是直接百度搜索正则表达式,然后复制加黏贴,搞定~是不是很爽。只是因正则表达式写起来比较麻烦,而且规则较多,而且网上有现成的。但是需求总是会变的,正确理清楚它们的规则,用起来才得心应手。

概述

元字符串

限定符

参数

其他字符

举一些栗子

手机号码

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

捕获组

    正则表达式除了能验证一些字符串是否符合规则之外,还能用来提取。补充一个概念,捕获组。

    捕获组?其实就是正则表达式中被小括号括住的部分。我们就可以通过这样写正则表达式,实现“匹配”和“提取”的双重目的: