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 相关文章推荐
jquery复选框全选/取消示例
Dec 30 Javascript
jquery获得同源iframe内body下标签的值的方法
Sep 25 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
js选择器全面解析
Jun 27 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
Dec 21 Javascript
详谈jQuery中的一些正则匹配表达式
Mar 08 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
Sep 11 Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 Javascript
详解Angular调试技巧之报错404(not found)
Jan 31 Javascript
如何实现小程序tab栏下划线动画效果
May 18 Javascript
JS实现公告上线滚动效果
Jan 10 Javascript
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
基于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代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
2017/07/07 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
Python线程详解
2015/06/24 Python
python中的随机函数random的用法示例
2018/01/27 Python
Python解决八皇后问题示例
2018/04/22 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
Python实现图片识别加翻译功能
2019/12/26 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
Python的历史与优缺点整理
2020/05/26 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
Python 如何实现访问者模式
2020/07/28 Python
如何使用Python调整图像大小
2020/09/26 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
大学生自我鉴定评语
2014/01/27 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书