使用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 相关文章推荐
Javascript模块模式分析
May 16 Javascript
基于jquery的一个浮动框(扩展性比较好 )
Aug 27 Javascript
js 删除数组的几种方法小结
Feb 21 Javascript
判断日期是否能跨月查询的js代码
Jul 25 Javascript
jquery提示效果实例分析
Nov 25 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
Jun 07 Javascript
BootstrapTable加载按钮功能实例代码详解
Sep 22 Javascript
深入理解requireJS-实现一个简单的模块加载器
Jan 15 Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 Javascript
vue根据值给予不同class的实例
Sep 29 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
Jun 16 Javascript
js 实现验证码输入框示例详解
Sep 23 Javascript
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
PHP 引用文件技巧
2010/03/02 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
event对象的方法 兼容多浏览器
2009/06/27 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python之批量创建文件的实例讲解
2018/05/10 Python
Python中的heapq模块源码详析
2019/01/08 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
python db类用法说明
2020/07/07 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
.net开发工程师面试题
2014/02/25 面试题
普通大学毕业生自荐信
2013/11/04 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
校园广播稿范文
2015/08/19 职场文书
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python