使用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 创建Dom元素
May 07 Javascript
js调试工具console.log()方法查看js代码的执行情况
Aug 08 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
Aug 10 Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 Javascript
js数字舍入误差以及解决方法(必看篇)
Feb 28 Javascript
javascript基本常用排序算法解析
Sep 27 Javascript
vue-cli中安装方法(图文详细步骤)
Dec 12 Javascript
JavaScript实现身份证验证代码实例
Aug 26 Javascript
聊聊Vue中provide/inject的应用详解
Nov 10 Javascript
微信小程序wx.request的简单封装
Nov 13 Javascript
Vue 实现登录界面验证码功能
Jan 03 Javascript
JS实现可视化音频效果的实例代码
Jan 16 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
ThinkPHP之R方法实例详解
2014/06/20 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
Yii清理缓存的方法
2016/01/06 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
Django跨域请求原理及实现代码
2020/11/14 Python
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
儿子婚宴答谢词
2014/01/09 职场文书
给医务人员表扬信
2014/01/12 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
大学军训感言1000字
2014/02/25 职场文书
挂靠协议书范本
2014/04/22 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
健康教育主题班会
2015/08/14 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
《秋天的怀念》教学反思
2016/02/17 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server