使用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 全面解析各种浏览器网页中的JS 执行顺序
Feb 17 Javascript
window.navigate 与 window.location.href 的使用区别介绍
Sep 21 Javascript
jQuery实现单击和鼠标感应事件
Feb 01 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
Apr 07 Javascript
jquery实现顶部向右伸缩的导航区域代码
Sep 02 Javascript
基于javaScript的this指向总结
Jul 22 Javascript
详解用node搭建简单的静态资源管理器
Aug 09 Javascript
基于angular6.0实现的一个组件懒加载功能示例
Apr 12 Javascript
从零开始用electron手撸一个截屏工具的示例代码
Oct 10 Javascript
js实现无缝轮播图插件封装
Jul 31 Javascript
在Vue中使用Echarts实例图的方法实例
Oct 10 Javascript
react项目从新建到部署的实现示例
Feb 19 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
BBS(php & mysql)完整版(七)
2006/10/09 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
CSS3实现闪烁动画效果的方法
2015/02/09 HTML / CSS
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
2014年科协工作总结
2014/12/09 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
六五普法心得体会2016
2016/01/21 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
python playwrigh框架入门安装使用
2022/07/23 Python