正则表达式

235 阅读1分钟

正则表达式


1.什么是正则表达式?

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式

2.正则表达式有什么作用?

正则表达式主要作用就是进行模式匹配和替换

3.如何定义一个正则表达式?

定义正则表达式有两种方式: 1).字面量定义 "/正则/" eg:/\d/ 匹配任意数字 2).RegExp()构造函数创建 eg:var reg = new RegExp("\d");

4.正则表达式符号及其含义

符号 含义
\d 匹配任意数字
\D 匹配任意非数字
\w 匹配任意字母,数字和下划线(_)
\W 匹配任意非字母,数字和下划线
\s 匹配任意空白字符(tab,enter等)
\S 匹配任意非空白字符
. 匹配除了换行符之外的其他任意字符
| 表示或的关系
* 表示至少0个前面表达式
? 表示有0个或者1个前面表达式
+ 表示至少有1个前面表达式
^ 开始界定符,表示以后面表达式开始
$ 结束界定符,表示以前面表达式结束
[] 定义一个字符集合,匹配字符集合中的任意一个字符
{} 表示范围
{n} 表示重复前面表达式n次
{n,} 表示重复前面表达式至少n次
{n,m} 表示重复前面表达式至少n次,至多m次

小例子

1.匹配手机号的正则表达式

#字面量方式:
var reg = /^1[34578]\d{9}$/

#RegExp()构造函数创建:
var reg = RegExp("^1[34578]\d{9}$")

2.匹配身份证号的正则表达式:

#字面量方式定义:
var reg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/

#RegExp()构造函数创建:
var reg = RegExp("(^\d{15}$)|(^{17}\d([0-9]|X)$)")

**说明:**由于身份证号码有15位和18位两种形式,因此在书写正则表达式时会进行两种模式匹配


备注: 本文是个人学习笔记综合所成,如有问题还请留言指出,共同进步。