使用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插件制作教程 txtHover
Aug 17 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
May 27 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
jQuery日期范围选择器附源码下载
May 23 jQuery
vue.js给动态绑定的radio列表做批量编辑的方法
Feb 28 Javascript
Postman模拟发送带token的请求方法
Mar 31 Javascript
linux 后台运行node服务指令方法
May 23 Javascript
Vue 事件处理操作实例详解
Mar 05 Javascript
从0到1搭建element后台框架优化篇(打包优化)
May 12 Javascript
详解可以用在VS Code中的正则表达式小技巧
May 14 Javascript
vue.js中ref和$refs的使用及示例讲解
Aug 14 Javascript
解决vue2中使用elementUi打包报错的问题
Sep 22 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
晶体管来复再生式二管收音机
2021/03/02 无线电
PHP 和 HTML
2006/10/09 PHP
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
手机端转换rem适应
2017/04/01 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
python使用代理ip访问网站的实例
2018/05/07 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
2019/01/29 Python
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
大学学生会竞选演讲稿
2014/04/25 职场文书
表彰大会策划方案
2014/05/13 职场文书
校本教研活动总结
2014/07/01 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
跑出一片天观后感
2015/06/08 职场文书
宾馆安全管理制度
2015/08/06 职场文书
Django操作cookie的实现
2021/05/26 Python
java如何实现socket连接方法封装
2021/09/25 Java/Android