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 相关文章推荐
js利用Array.splice实现Array的insert/remove
Jan 13 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
Dec 30 Javascript
ExtJs的Date格式字符代码
Dec 30 Javascript
JavaScript中常用的运算符小结
Jan 18 Javascript
使用JavaScript的AngularJS库编写hello world的方法
Jun 23 Javascript
js 定义对象数组(结合)多维数组方法
Jul 27 Javascript
jQuery实现手势解锁密码特效
Aug 14 jQuery
原生JS封装animate运动框架的实例
Oct 12 Javascript
基于vue.js的分页插件详解
Nov 27 Javascript
原生js实现移动端触摸轮播的示例代码
Dec 22 Javascript
JS中offset和匀速动画详解
Feb 06 Javascript
mpvue写一个CPASS小程序的示例
Sep 04 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
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
原生js实现购物车
2020/09/23 Javascript
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
2020/03/16 Python
python3的pip路径在哪
2020/06/23 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
会计系个人求职信范文分享
2013/12/20 职场文书
化验室技术员岗位职责
2013/12/24 职场文书
证券期货行业个人的自我评价
2013/12/26 职场文书
期终自我鉴定
2014/02/17 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
担保书范文
2019/07/09 职场文书
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技