盘点javascript 正则表达式中 中括号的【坑】


Posted in Javascript onMarch 16, 2016

在javascript中使用正则时需要注意中括号里边的一个坑,那就是中括号内的元字符问题。自己踩到坑了,网上搜了一下还有不少人踩了这个坑,所以大概说一下。

中括号在正则中称为字符组(Character class),有的书翻译为字符类,还有的翻译成字符集。我觉得字符组更好点,毕竟class在计算机属于中代表面向对象里的“类”。顾名思义,字符组为一组字符,它表示在一个位置里可能出现的多种字符。注意这里强调只匹配一个位置哦。(此段摘自-http://www.cnblogs.com/snandy/p/3662423.html)

 

用到一个取任意字符的地方,于是用了[.\n]*   结果  test一下 返回true,但是放到具体的环境当中不对。。。。。。哎呀我去,不可以理解了。

果断测试一下   var testp = /xx>[.\n]*/    testp.test("xx>asdfdfasd");  果断还是 true,把"xx>"放后面也是true,但是,两边都放上就是false。这是为什么呢??????

 

于是又重新 搞下var testp = /(xx>[.\n]*)/这个,改一下加个括号就可以捕获匹配的串串了。test完了,RegExp.$1一下特么发现 是空。。。。。是空。。。。为啥呢????

当把test的字符串参数变成("...........")时,这串点出现了,所以呢,这个中括号里边点就只代表点,不代表别的,不是元字符除\n以外的单字符的意思了。于是网上搜了一下:

“很多元字符在字符组内都变成了普通字符”  对它变成了普通字符了,而不是元字符了,还有其他的像  "?","+","*"这几个一旦放到中括号也变成了普通的字符了。

所以这个坑还是要当心啊。。。。

 

对了,任意字符可以用 [\s\S]代替。

以上这篇盘点javascript 正则表达式中 中括号的【坑】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery中使用ajax传输超大数据的解决方法
Jul 14 Javascript
javascript实现单击和双击并存的方法
Dec 13 Javascript
jQuery中:disabled选择器用法实例
Jan 04 Javascript
Select下拉框模糊查询功能实现代码
Jul 22 Javascript
浅谈Cookie的生命周期问题
Aug 02 Javascript
JavaScript实现异步图像上传功能
Jul 12 Javascript
实例详解BootStrap的动态模态框及静态模态框
Aug 13 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
Aug 19 Javascript
使用JavaScript破解web
Sep 28 Javascript
vue组件通信传值操作示例
Jan 08 Javascript
微信小程序点击顶部导航栏切换样式代码实例
Nov 12 Javascript
Node实现搜索框进行模糊查询
Jun 28 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 #Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
Mar 16 #Javascript
js纯数字逐一停止显示效果的实现代码
Mar 16 #Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
Mar 16 #Javascript
js获取时间精确到秒(年月日)
Mar 16 #Javascript
js实现内容显示并使用json传输数据
Mar 16 #Javascript
javascript中arguments,callee,caller详解
Mar 16 #Javascript
You might like
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
怎么清空javascript数组
2013/05/11 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
python列表与元组详解实例
2013/11/01 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
Python中字符串List按照长度排序
2019/07/01 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
Django模板Templates使用方法详解
2019/07/19 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
奥林匹克的口号
2014/06/13 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
2015大学生实训报告
2014/11/05 职场文书
5个实用的JavaScript新特性
2022/06/16 Javascript
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL