正则表达式

发布时间 2023-12-31 15:50:45作者: 和哗

正则表达式

正则表达式(Regular  Expression)使用单个字符串描述匹配一系列符合某个语法规则的字符串搜索模式。

为什么使用正则表达式

因为如果使用普通的String对象只能做一些简单的校验,稍微复杂的校验将很难实现,而使用正则表达式可以让数据校验更加简单

正则表达式语法

语法:

pattern:表示表达式

modifiers:表示修饰符

方法一:
使用构造函数创建正则表达式对象(很少有)
构造函数:var  reg = new RegExp(pattern,【modifiers】)

方法二:
直接写正则表达式
字面量:var reg = /pattern/modifiers;

正则表达式使用

检测一个字符串正则表达式是否相匹配

修饰符

 常用的表达式

 常用的元字符(特殊字符)

 找规律:一般小写字母的都是要匹配的,而大写都是不要匹配的

常用的限定符(量词)

 正则表达式练习

1. 邮政编码:由6个数字构成,第一位不可以是0

分析:

①由6位数字组成,可以使用\d表示数字第一位不能是0,所以只能取 [1 - 9]=====>/^[1-9]/
③其它五位由数字组成======>/^[1-9]\d{5}$/

正则表达式:

/^[1-9]\d{5}$/

2. 手机号码:由13/1517/18开头的11位数字

分析:

以13/15/17开头第一个数字为1===> /^1/第二位3/5/7,可以表示为=====>/^1[357]/
③一共由11位数字,所以除开头两个外,还剩下9位任意数字====>/^1[357]\d{9}$/

正则表达式:

/^1[357]\d{9}$/

3. QQ号码:第一位不可以是0,位数由5-12位数字组成

分析:

①一共由5-12位数字组成第一位不能为0===>/^[1-9]/其它数字组成====>/^[1-9]\d{4,11}$/

正则表达式:

/^[1-9]\d{4,11}$/

4. 密码:字母、数字、下划线构成,6-20位

分析:

①密码由字母、下划线、数字构成=====>\w
②一共6-20位=====> /^\w{6,20}$/

正则表达式:

 /^\w{6,20}$/

5. 用户名:字母、数字、下划线构成,6-16位,不能以数字开头

分析:

字母、数字、下划线构成====>\w
②不能数字开头====>/^([A-Z]|[a-z]|_)/
③一共由6-16位组成=====>/^([A-Z]|[a-z]|_)\w{5,15}$/

正则表达式:

/^([A-Z]|[a-z]|_)\w{5,15}$/

6. 输入年龄只能在18-40之间

分析:

1开头只能18和19===>/^(1[89])/2和3开头第二个数可以是任意数字====>/^([23]\d)/4开头只能是0====>/^40/
④综合起来表示:/^(1[89])|([23]\d)|(4[0])$/

正则表达式:

/^(1[89])|([23]\d)|(4[0])$/

7. 身份证号码:15或18位,如果是15位则全是数字,如果为18位,前17为数字,第18位为数字或字母x不区分大小写

分析:

注意看这里需要分为两种情况
情况一:只有15位时
①15位全部为数字====>/^\d{15}$/

情况二:18位时
①前17位数字=====>/^\d{17}/第18位可以是数字或字母x不区分大小写====>/^\d{17}[\dxX]$/

正则表达式:

/^(\d{15}$)|(\d{17}[\dxX])$/

8. 中文名字:三个汉字、中间必须是小或晓

分析:

汉字使用[\u4e00-\u9fa5]====>/^[\u4e00-\u9fa5]/中间必须是晓或小=====>/^[\u4e00-\u9fa5][小晓]/由三个汉字组成====>/^[\u4e00-\u9fa5][晓小][\u4e00-\u9fa5]$/

正则表达式:

/^[\u4e00-\u9fa5][晓小][\u4e00-\u9fa5]$/