使用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 相关文章推荐
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
Dec 21 Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 Javascript
自己动手写的jquery分页控件(非常简单实用)
Oct 28 Javascript
JS实现网页上随滚动条滚动的层效果代码
Nov 04 Javascript
EasyUI布局 高度自适应
Jun 04 Javascript
基于JavaScript实现轮播图代码
Jul 14 Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 Javascript
EditPlus中的正则表达式 实战(4)
Dec 15 Javascript
基于vue实现swipe轮播组件实例代码
May 24 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
Jun 29 Javascript
利用Angular7开发一个Radio组件的全过程
Jul 11 Javascript
JS浮点数运算结果不精确的Bug解决
Aug 01 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
德生9700DX电路分析
2021/03/02 无线电
一个SQL管理员的web接口
2006/10/09 PHP
php记录日志的实现代码
2011/08/08 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
flash javascript之间的通讯方法小结
2008/12/20 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
Python print不能立即打印的解决方式
2020/02/19 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
印度服装购物网站:Limeroad
2018/09/26 全球购物
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
抽象类和接口的区别
2012/09/19 面试题
村优秀党员事迹材料
2014/01/15 职场文书
创建学习型党组织实施方案
2014/03/29 职场文书
支部鉴定材料
2014/06/02 职场文书
行政求职信
2014/07/04 职场文书
小学生2014国庆节演讲稿:祖国在我心中
2014/09/21 职场文书
南京南京观后感
2015/06/02 职场文书
新教师教学工作总结
2015/08/14 职场文书
医院病假条怎么写
2015/08/17 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python