jquery里的正则表达式说明


Posted in Javascript onAugust 03, 2011

// A simple way to check for HTML strings or ID strings

// (both of which we optimize for)

quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/

根据jquery的注释,其是匹配HTML字符串和ID选择器

一开始看这段正则表达式的时候,怎么匹配非<的0个或者多个,又匹配<,这样到底是匹配<还是不匹配呢?而且html标签,不是应该就直接匹配<吗?

首先(?:pattern)匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。而且其会匹配所有非括号里的内容。

下面给个例子来说明

var quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/; 
sss="jytjt<dd1></1>fefef" 
match=quickExpr.exec(sss); 
alert(match);

结果是jytjt<dd1></1>fefef=,<dd1></1>

可以看到exec返回的是一个数组,而且第二个字符串就是?:匹配掉<>外非<和非>的字符

在jquery中获得结果的方法也是match[1]。所以这样即使你给jquery的选择器输入了多余的html标签,它也可以筛选出正确的html标签来。同时这里的?:还会筛选掉#,所以会得到只有id名,没有#号的id。

所以这段jquery正则表达式的意思就是,筛选html标签或者id选择符

Javascript 相关文章推荐
JavaScript 学习笔记(十三)Dom创建表格
Jan 21 Javascript
ExtJS的拖拽效果示例
Dec 09 Javascript
js控制鼠标事件移动及移出效果显示
Oct 19 Javascript
使用正则表达式的格式化与高亮显示json字符串
Dec 03 Javascript
分享十五款 jQuery 社交网络分享插件
May 16 Javascript
jQuery插件datepicker 日期连续选择
Jun 12 Javascript
JS调用某段SQL语句的方法
Oct 20 Javascript
微信小程序 欢迎界面开发的实例详解
Nov 30 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
layui: layer.open加载窗体时出现遮罩层的解决方法
Sep 26 Javascript
浅谈vuex为什么不建议在action中修改state
Feb 02 Javascript
基于jQuery的图片剪切插件
Aug 03 #Javascript
jQuery + Flex 通过拖拽方式动态改变图片的代码
Aug 03 #Javascript
JavaScript 一道字符串分解的题目
Aug 03 #Javascript
JavaScript中去掉数组中的重复值的实现方法
Aug 03 #Javascript
JavaScript 大数据相加的问题
Aug 03 #Javascript
推荐11款jQuery开发的复选框和单选框美化插件
Aug 02 #Javascript
JS 控制小数位数的实现代码
Aug 02 #Javascript
You might like
学习使用PHP数组
2006/10/09 PHP
PHP中函数内引用全局变量的方法
2008/10/20 PHP
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php中的观察者模式简单实例
2015/01/20 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
Python 文件和输入输出小结
2013/10/09 Python
Python实现计算最小编辑距离
2016/03/17 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
python实现网站微信登录的示例代码
2019/09/18 Python
如何理解Python中包的引入
2020/05/29 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
蔻驰法国官网:COACH法国
2018/11/14 全球购物
计算机应用专业推荐信
2013/11/13 职场文书
农业局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
中职毕业生自我鉴定范文(3篇)
2014/09/28 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
2015年宣传工作总结
2015/04/08 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
MySQL Router的安装部署
2021/04/24 MySQL
python基于tkinter实现gif录屏功能
2021/05/19 Python