前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端基础-JavaScript中正则对象

前端基础-JavaScript中正则对象

作者头像
cwl_java
发布2020-03-26 16:21:54
1.1K0
发布2020-03-26 16:21:54
举报
文章被收录于专栏:cwl_Javacwl_Java

第3章 js中正则对象

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

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

1、test方法

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

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

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

2、exec方法

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

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

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

代码语言:javascript
复制
	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.

代码语言:javascript
复制
	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位数字

代码语言:javascript
复制
/^1[3-9]\d{9}$/

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

示例:

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

代码语言:javascript
复制
/^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的字母

代码语言:javascript
复制
var pattern = /^\w[\w\.-]*@[0-9a-z][0-9a-z-]*(\.[a-z]+)*\.[a-z]{2,6}$/i;

register-email.html

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第3章 js中正则对象
    • 1、test方法
      • 2、exec方法
        • 3、lastIndex属性
        • 案例一
          • 1、检测手机号格式
            • 2、检测邮箱格式
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档