使用JS中的exec()方法构造正则表达式验证


Posted in Javascript onAugust 01, 2016

正则表达式,又称正规表示法、常规表示法。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

一、Javascript中的正则表达式

在Javascript中,可以使用RegExp对象构造正则表达。我们需要新建一个实例化的RegExp()对象,可以传入两个参数:第一个参数是匹配的模式,第二个参数是一个可选项,可以传入三种参数。i表示不区分大小写,g表示全局匹配,即匹配所有的符合条件的字符串,m表示执行多次匹配。实例如下:

var reg = new RegExp("Hello", "i"); //表示匹配字符串中的Hello字符串,并且不区分大小写。

二、使用exec进行模式匹配

RegExp中有一个方法可以进行模式匹配并返回结果:exec()。该方法非常重要,基本是使用js进行模式匹配必用的函数。然而该函数的返回值有很多人并不清楚,因此在实际使用的时候经常会出错。在这里系统的介绍一些exec()的使用方法。

exec()的基本格式为:RegExpObject.exec(string),其中RegExpObject为设置好的正则匹配对象,string为待匹配的字符串。如果成功匹配,则返回一个数组;如果没有成功匹配的字符串部分,则返回null。

这里的重点就在于这个数组。数组返回的到底是什么呢?可以看一下下面这个实验.

var re = new RegExp("[?#&]" + user + "=([^&#]*)", "i")

这段代码进行了一个url的匹配,可以用来获得user=后面的参数部分,那么如果使用一个url并且用这个模式进行exec操作,结果会返回什么呢?比如我们有如下

www.qq.com?user=Tom&psw=123456

exec返回的数组结果为:[?user=Tom, Tom]。可以看到返回数组的第一个元素就是整个的匹配模式所匹配到的字符串,而第二个匹配到的字符恰好是参数值。

这是exec匹配返回的规则:第一个元素为整个的匹配字符串,从第二个参数开始返回模式中每一个()所定义的分组所匹配的字符串。

这里面([^&#]*)返回的就是不以&或#开头的字符串,即后面对应的参数。

如果我们将定义的模式修改为[?#&]" + (user) + "=([^&#]*),那么exec()后返回的数组就是[?user=Tom, user, Tom]。

以上所述是小编给大家介绍的使用JS中的exec()方法构造正则表达式验证,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于JQuery的cookie插件
Apr 07 Javascript
输入密码检测大写是否锁定js实现代码
Dec 03 Javascript
用Javascript来生成ftp脚本的小例子
Jul 03 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
Dec 12 Javascript
JS区分浏览器页面是刷新还是关闭
Apr 17 Javascript
JavaScript中setter和getter方法介绍
Jul 11 Javascript
seajs学习之模块的依赖加载及模块API的导出
Oct 20 Javascript
js canvas实现QQ拨打电话特效
May 10 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
Jul 17 Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
Mar 29 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
javascript创建含数字字母的随机字符串方法总结
Aug 01 #Javascript
jQuery简单实现彩色云标签效果示例
Aug 01 #Javascript
jQuery实现的简单百分比进度条效果示例
Aug 01 #Javascript
AngularJS基础 ng-focus 指令简单示例
Aug 01 #Javascript
JavaScript中的对象继承关系
Aug 01 #Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
Aug 01 #Javascript
jQuery Ajax 加载数据时异步显示加载动画
Aug 01 #Javascript
You might like
一个颜色轮换的简单例子
2006/10/09 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
JS实现可控制的进度条
2020/03/25 Javascript
JavaScript浅层克隆与深度克隆示例详解
2020/09/01 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
八一建军节部队活动方案
2014/02/04 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
敬老院活动感想
2015/08/07 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js