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 操作table,可以新增行和列并且隔一行换背景色代码分享
Jul 05 Javascript
上传图片js判断图片尺寸和格式兼容IE
Sep 01 Javascript
根据配置文件加载js依赖模块
Dec 29 Javascript
javascript常用经典算法实例详解
Nov 25 Javascript
手机Web APP如何实现分享多平台功能
Aug 19 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
Mar 10 Javascript
JavaScript通过filereader接口读取文件
May 10 Javascript
vue组件与复用详解
Apr 08 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
Oct 17 Javascript
JS async 函数的含义和用法实例总结
Apr 08 Javascript
基于JS实现table导出Excel并保留样式
May 19 Javascript
游戏开发中如何使用CocosCreator进行音效处理
Apr 14 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
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
php封装的验证码类分享
2017/02/26 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
javascript实现数独解法
2015/03/14 Javascript
学习jQuey中的return false
2015/12/18 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
bootstrap下拉菜单使用方法解析
2017/01/13 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python 文件和路径操作函数小结
2009/11/23 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
python 函数中的参数类型
2020/02/11 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
高校教师思想汇报
2014/01/11 职场文书
解除财产保全担保书
2014/05/20 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
文明单位汇报材料
2014/12/24 职场文书
介绍信怎么写
2015/05/05 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android