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 相关文章推荐
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
javascript工厂方式定义对象
Dec 26 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
Mar 04 Javascript
深入理解node exports和module.exports区别
Jun 01 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
Aug 31 Javascript
基于vue2实现左滑删除功能
Nov 28 Javascript
微信小程序使用modal组件弹出对话框功能示例
Nov 29 Javascript
vue如何截取字符串
May 06 Javascript
实用Javascript调试技巧分享(小结)
Jun 18 Javascript
如何测量vue应用运行时的性能
Jun 21 Javascript
layui 实现加载动画以及非真实加载进度的方法
Sep 23 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
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
Dom在ajax技术中的作用说明
2010/10/25 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
python使用matplotlib绘制柱状图教程
2017/02/08 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
python保存数据到本地文件的方法
2018/06/23 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
python中for in的用法详解
2020/04/17 Python
10个示例带你掌握python中的元组
2020/11/23 Python
Python使用Pygame绘制时钟
2020/11/29 Python
薇姿法国官网:Vichy法国
2021/01/28 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
店长岗位的工作内容
2013/11/12 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
英语系本科生求职信
2014/07/15 职场文书
毕业证代领委托书
2014/09/26 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
暂停营业通知
2015/04/25 职场文书
工作态度怎么写
2015/06/25 职场文书
公司开业致辞
2015/07/29 职场文书
学校体育节班级口号
2015/12/25 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers
2022年四月新番
2022/03/15 日漫