前端基础-JavaScript中正则对象

第3章 js中正则对象

正则对象两种定义方式:js中正则表达式两边不用加引号

	var pattern = /[a-z]/;//将正则表达式直接当做对象使用。
	var pattern = new RegExp(/[a-z]/);//实例化RegExp对象

1、test方法

test方法检测目标字符串和正则表达式是否匹配,如果匹配返回true,不匹配返回false。

正则表达式中,一般不需要加全局修饰符g。

	var str = 'php1js22';
	var pattern = /^[a-z]/;//以小写字母开头
	var res = pattern.test(str);//匹配字符串是否以小写字母开头
	console.log(res);//true

2、exec方法

exec方法执行一个正则匹配,只匹配一次,匹配到结果就返回一个数组类型的结果,匹配不到就返回null。

正则表达式中,一般不需要加全局修饰符g。

即使正则表达式中,使用了全局匹配修饰符g,也只匹配一次。

	var str = 'php1js22';
	var pattern = /[a-z]/;//匹配小写字母字符串
	//var pattern = /[a-z]/g;//全局匹配小写字母字符串
	var res1 = pattern.exec(str);
	console.log(res1);//["p"] 只匹配一次,返回数组

3、lastIndex属性

表示正则表达式,上一次匹配结束后的位置(目标字符串中的索引),即下一次匹配开始的位置。

lastIndex是一个整数,。没有更多匹配重置lastIndex为0.

test 方法和exec方法默认都只匹配一次。匹配后lastIndex 被自动重置为0.

特殊情况:如果正则表达式使用了全局匹配修饰符g,则lastIndex不会被重置为0.

	var str = 'php1js22';
	//var pattern = /[a-z]/;//匹配小写字母字符串
	var pattern = /[a-z]/g;//全局匹配小写字母字符串
	var res1 = pattern.exec(str);
	console.log(res1);//["p"] 只匹配一次,返回数组
	console.log(pattern.lastIndex);//1  下一次匹配开始的位置
	var res2 = pattern.exec(str);
	console.log(res2);//["h"] //从位置1开始匹配

案例一

1、检测手机号格式

手机号特点:11位,纯数字,1开头, [23位号段,具体咨询各大运营商]

简单版(限制前两位):1开头,第二位3-9,后面9位数字

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

精确版(限制前三位):(如果出现新的手机号段,则不适用,需更新)

示例:

13[0-9]开头、14[579]开头、15[0-3,5-9]开头、166开头、17[0135678]开头、18[0-9]开头、19[89]开头

/^1(3[0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|8[0-9]|9[89])\d{8}$/

手机号检测案例:register.html

在这里插入图片描述

2、检测邮箱格式

邮箱特点:

2342.3s_-df@sina.com.cn

通用的邮箱的特点:

简单版:必须有@ 正则 /@/

精确版:

​ 必须有@和.

​ @前面是邮箱名,要求至少一个字符,要求是数字、字母、下划线、[还可以用.-],但是开头必须是数字字母下划线

​ @和点之间:是一个域名,要求至少一个字符,可以是数字字母中横线,要求开头是数字或字母

​ 点后面:要求是至少一个字符,必须是字母

​ 点xxx,这部分可以出现一次,也可以出现多次

最后一个点后面,字符长度为2-6的字母

var pattern = /^\w[\w\.-]*@[0-9a-z][0-9a-z-]*(\.[a-z]+)*\.[a-z]{2,6}$/i;

register-email.html

在这里插入图片描述

发布了2133 篇原创文章 · 获赞 2370 · 访问量 24万+
App 阅读领勋章
微信扫码 下载APP
阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 成长之路 设计师: Amelia_0503

分享到微信朋友圈

×

扫一扫,手机浏览