盘点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 相关文章推荐
用js实现的检测浏览器和系统的函数
Apr 09 Javascript
Javascript 阻止javascript事件冒泡,获取控件ID值
Jun 27 Javascript
Confirmer JQuery确认对话框组件
Jun 09 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
Jan 17 Javascript
JavaScript语言核心数据类型和变量使用介绍
Aug 23 Javascript
用Js实现的动态增加表格示例自己写的
Oct 21 Javascript
jQuery scroll事件实现监控滚动条分页示例
Apr 04 Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 Javascript
Vue.js 事件修饰符的使用教程
Nov 01 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
May 15 Javascript
JS通过识别id、value值对checkbox设置选中状态
Feb 19 Javascript
Vue-cli 移动端布局和动画使用详解
Aug 10 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
phpmail类发送邮件函数代码
2012/02/20 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
JS中FRAME的操作问题实例分析
2014/10/21 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
JS+Canvas实现五子棋游戏
2020/08/26 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
netbeans7安装python插件的方法图解
2013/12/24 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
python实现字符串加密成纯数字
2019/03/19 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
python3安装crypto出错及解决方法
2019/07/30 Python
Django发送邮件功能实例详解
2019/09/02 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
Python容器类型公共方法总结
2020/08/19 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
车祸赔偿收入证明
2014/01/09 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
机械制造毕业生求职信
2014/03/03 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
建议书范文
2015/02/05 职场文书
音乐教师个人总结
2015/02/06 职场文书
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫