盘点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 相关文章推荐
JavaScript 创建对象
Jul 17 Javascript
jQuery对象初始化的传参方式
Feb 26 Javascript
js中for in语句的用法讲解
Apr 24 Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 Javascript
JS不完全国际化&本地化手册 之 理论篇
Sep 27 Javascript
JavaScript实现经典排序算法之冒泡排序
Dec 28 Javascript
JS按钮闪烁功能的实现代码
Jul 21 Javascript
什么是Vue.js框架 为什么选择它?
Oct 17 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
Oct 17 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
Aug 14 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 31 Javascript
React倒计时功能实现代码——解耦通用
Sep 18 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
php中jpgraph类库的使用介绍
2013/08/08 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
python生成n个元素的全组合方法
2018/11/13 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
python SVD压缩图像的实现代码
2019/11/05 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
Python pip 常用命令汇总
2020/10/19 Python
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
法人代表授权委托书
2014/04/08 职场文书
新员工考核评语
2014/12/31 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
Elasticsearch 索引操作和增删改查
2022/04/19 Python