使用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 相关文章推荐
参考:关于Javascript中实现暂停的几篇文章
Mar 04 Javascript
有效的捕获JavaScript焦点的方法小结
Oct 08 Javascript
jQuery ajax dataType值为text json探索分享
Sep 23 Javascript
js控制分页打印、打印分页示例
Feb 08 Javascript
判断某个字符在一个字符串中是否存在的js代码
Feb 28 Javascript
jQuery实现内容定时切换效果完整实例
Apr 06 Javascript
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
Webpack 服务器端代码打包的示例代码
Sep 19 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 Javascript
原生js实现淘宝放大镜效果
Oct 28 Javascript
Vue 页面权限控制和登陆验证功能的实例代码
Jun 20 Javascript
vue + axios get下载文件功能
Sep 25 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 数组的一个悲剧?
2011/05/11 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
js实现每日签到功能
2018/11/29 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
python中实现定制类的特殊方法总结
2014/09/28 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Python入门教程之运算符与控制流
2016/08/17 Python
Python中is和==的区别详解
2018/11/15 Python
详解python中的模块及包导入
2019/08/30 Python
opencv+python实现均值滤波
2020/02/19 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
群众路线批评与自我批评
2014/02/06 职场文书
数学教学随笔感言
2014/02/17 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
学生操行评语大全
2014/04/24 职场文书
2014年母亲节寄语
2014/05/07 职场文书
办公室文员岗位职责
2015/02/04 职场文书
中国合伙人观后感
2015/06/02 职场文书
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技