使用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常用函数 不错
Sep 08 Javascript
使用Javascript接收get传递的值的代码
Nov 30 Javascript
jquery插件jquery倒计时插件分享
Dec 27 Javascript
javascript将相对路径转绝对路径示例
Mar 14 Javascript
JQuery调用WebServices的方法和4个实例
May 06 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
Dec 25 Javascript
微信小程序后台解密用户数据实例详解
Jun 28 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
vue mounted组件的使用
Jun 18 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
Nov 21 Javascript
Bootstrap4 gulp 配置详解
Jan 06 Javascript
二维码条形码生成的JavaScript脚本库
Jul 07 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 GeoIP的使用教程
2011/03/09 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
js更优雅的兼容
2010/08/12 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
微信小程序登录数据解密及状态维持实例详解
2019/05/06 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
python实现网页链接提取的方法分享
2014/02/25 Python
python基础教程之数字处理(math)模块详解
2014/03/25 Python
Python的Django框架中的Context使用
2015/07/15 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
Python AES加密实例解析
2018/01/18 Python
python实现飞机大战微信小游戏
2020/03/21 Python
Python列表(List)知识点总结
2019/02/18 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
Python colormap库的安装和使用详情
2020/10/06 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
医学院校毕业生自荐信范文
2014/01/01 职场文书
2014年道德讲堂实施方案
2014/03/05 职场文书
工程部文员岗位职责
2015/02/04 职场文书
统计员岗位职责
2015/02/11 职场文书
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL
Oracle中日期的使用方法实例
2022/07/07 Oracle