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 多级checkbox选择效果
Aug 20 Javascript
JavaScript面向对象之静态与非静态类
Feb 03 Javascript
jQuery判断元素是否是隐藏的代码
Apr 24 Javascript
css transform 3D幻灯片特效实现步骤解读
Mar 27 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
Sep 05 Javascript
jQuery 快速结束当前正在执行的动画
Nov 20 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
Mar 09 Javascript
jQuery拖拽通过八个点改变div大小
Nov 29 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
Mar 13 Javascript
vue微信分享的实现(在当前页面分享其他页面)
Apr 16 Javascript
js实现简单音乐播放器
Jun 30 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 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超级全局变量数组小结
2012/10/04 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
Python实现的归并排序算法示例
2017/11/21 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
Python2与Python3的区别实例分析
2019/04/11 Python
python装饰器的特性原理详解
2019/12/25 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
python实现经纬度采样的示例代码
2020/12/10 Python
网络营销策划方案
2014/06/04 职场文书
数学教师个人总结
2015/02/06 职场文书
死亡诗社观后感
2015/06/05 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
python数字转对应中文的方法总结
2021/08/02 Python
Oracle配置dblink访问PostgreSQL的操作方法
2022/03/21 PostgreSQL