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 相关文章推荐
更换select下拉菜单背景样式的实现代码
Dec 20 Javascript
原生JS实现加入收藏夹的代码
Oct 24 Javascript
JavaScript执行顺序详细介绍
Dec 04 Javascript
jQuery实现手机号码输入提示功能实例
Apr 30 Javascript
js简单实现Select互换数据的方法
Aug 17 Javascript
基于AngularJS+HTML+Groovy实现登录功能
Feb 17 Javascript
jQuery实现 上升、下降、删除、添加一行代码
Mar 06 Javascript
jQuery插件DataTables分页开发心得体会
Aug 22 jQuery
JS实现动态生成html table表格的方法分析
Jul 11 Javascript
json字符串传到前台input的方法
Aug 06 Javascript
微信小程序自定义组件实现环形进度条
Nov 17 Javascript
在Angular项目使用socket.io实现通信的方法
Jan 05 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中基本符号及使用方法
2010/03/23 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
JS实现动态给图片添加边框的方法
2015/04/01 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
jQuery Validate表单验证插件实现代码
2017/06/08 jQuery
JS实现图片居中悬浮效果
2017/12/25 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
python开发之函数定义实例分析
2015/11/12 Python
详解duck typing鸭子类型程序设计与Python的实现示例
2016/06/03 Python
python之pandas用法大全
2018/03/13 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
C#和SQL Server的面试题
2016/08/12 面试题
致百米运动员广播稿
2014/01/29 职场文书
工作决心书
2014/03/11 职场文书
物理课外活动总结
2014/08/27 职场文书
团代会闭幕词
2015/01/28 职场文书
竞聘书的秘诀
2019/04/02 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript