使用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中的escape及unescape函数的php实现代码
Sep 04 Javascript
基于jquery实现发送文章到手机的代码
Dec 26 Javascript
js基础知识(公有方法、私有方法、特权方法)
Nov 06 Javascript
基于jquery实现全屏滚动效果
Nov 26 Javascript
jQuery插件datatables使用教程
Apr 21 Javascript
轻松掌握JavaScript中的Math object数学对象
May 26 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 Javascript
node.js之基础加密算法模块crypto详解
Sep 11 Javascript
Vue实现数据表格合并列rowspan效果
Nov 30 Javascript
js实现漂亮的星空背景
Nov 01 Javascript
JS实现拼图游戏
Jan 29 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执行速度全攻略(上)
2006/10/09 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
超级简单的jquery操作表格方法
2014/12/15 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
js实现简易计算器功能
2019/10/18 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
机器学习10大经典算法详解
2017/12/07 Python
TensorFlow实现模型评估
2018/09/07 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
tensorflow的计算图总结
2020/01/12 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
基层党组织整改方案
2014/10/25 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
Redis实现分布式锁的五种方法详解
2022/06/14 Redis