使用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 相关文章推荐
JS跨域代码片段
Aug 30 Javascript
判定是否原生方法的JS代码
Nov 12 Javascript
js导入导出excel(实例代码)
Nov 25 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
Jun 06 Javascript
javascript获取flash版本号的方法
Nov 20 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
Mar 14 Javascript
深入理解$.each和$(selector).each
May 15 Javascript
Jquery和Js获得元素标签名称的方法总结
Oct 08 Javascript
折叠菜单及选择器的运用
Feb 03 Javascript
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
七行JSON代码把你的网站变成移动应用过程详解
Jul 09 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设计模式之结构模式的深入解析
2013/06/13 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
checkbox 多选框 联动实现代码
2008/10/22 Javascript
jquery 学习笔记一
2010/04/07 Javascript
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
快速实现jQuery多级菜单效果
2017/02/01 Javascript
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
为什么Python中没有"a++"这种写法
2018/11/27 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
python如何设置静态变量
2020/09/07 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
上海世博会口号
2014/06/19 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
python tqdm用法及实例详解
2021/06/16 Python
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技