使用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 相关文章推荐
快速保存网页中所有图片的方法
Jun 23 Javascript
不错的JS中变量相关的细节分析
Aug 13 Javascript
利用jQuery的$.event.fix函数统一浏览器event事件处理
Dec 21 Javascript
理解Javascript_09_Function与Object
Oct 16 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
Jan 11 Javascript
jquery+javascript编写国籍控件
Feb 12 Javascript
使用递归遍历对象获得value值的实现方法
Jun 14 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
Sep 05 Javascript
Three.js利用dat.GUI如何简化试验流程详解
Sep 26 Javascript
详解开源的JavaScript插件化框架MinimaJS
Oct 26 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
Nov 15 Javascript
JavaScript浅层克隆与深度克隆示例详解
Sep 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
mysql 全文搜索 技巧
2007/04/27 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
ThinkPHP之getField详解
2014/06/20 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
jquery 手势密码插件
2017/03/17 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
python 信息同时输出到控制台与文件的实例讲解
2018/05/11 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
Python箱型图处理离群点的例子
2019/12/09 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
财务管理专业应届毕业生求职信
2013/09/22 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers