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变量作用域及可访问性的探讨
Nov 23 Javascript
JavaScript Perfection kill 测试及答案
Mar 23 Javascript
jQuery简易图片放大特效示例代码
Jun 09 Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 Javascript
Javascript连接Access数据库完整实例
Aug 03 Javascript
Angularjs CURD 详解及实例代码
Sep 14 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
May 04 jQuery
Vue的Class与Style绑定的方法
Sep 01 Javascript
在Vue中使用Compass的方法
Mar 02 Javascript
JS获取指定月份的天数两种实现方法
Jun 22 Javascript
详解Vue中的Props与Data细微差别
Mar 02 Javascript
javaScript实现一个队列的方法
Jul 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
PHP中str_replace函数使用小结
2008/10/11 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
2016/05/24 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
Python单链表简单实现代码
2016/04/27 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
Python处理session的方法整理
2019/08/29 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
python3代码中实现加法重载的实例
2020/12/03 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
带病坚持工作事迹
2014/05/03 职场文书
行政管理专业求职信
2014/07/06 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
2014年人事部工作总结
2014/12/03 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
预备党员入党感言
2015/08/01 职场文书
Java实现房屋出租系统详解
2021/10/05 Java/Android
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers