盘点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 相关文章推荐
用cookies实现的可记忆的样式切换效果代码下载
Dec 24 Javascript
div移动 输入框不能输入的问题
Nov 19 Javascript
javascript弹出层输入框(示例代码)
Dec 11 Javascript
js、jquery图片动画、动态切换示例代码
Jun 03 Javascript
jquery实现相册一下滑动两次的方法
Feb 09 Javascript
AngularJS基础学习笔记之控制器
May 10 Javascript
利用JS提交表单的几种方法和验证(必看篇)
Sep 17 Javascript
JS实现留言板功能
Jun 17 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
Jan 08 Javascript
ES6 迭代器与可迭代对象的实现
Feb 11 Javascript
微信小程序实现授权登录
May 15 Javascript
vuex实现数据状态持久化
Nov 11 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学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
那些年一起学习的PHP(三)
2012/03/22 PHP
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
jQuery实用技巧必备(上)
2015/11/02 Javascript
JS原型链怎么理解
2016/06/27 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
Vue点击切换颜色的方法
2018/09/13 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
Python过滤列表用法实例分析
2016/04/29 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
Python子类继承父类构造函数详解
2019/02/19 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
python opencv进行图像拼接
2020/03/27 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
法律七进实施方案
2014/03/15 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
大学生违纪检讨书300字
2014/10/25 职场文书
旷课检讨书范文
2015/01/27 职场文书
500字小学生检讨书
2015/02/19 职场文书
毕业生学校组织意见
2015/06/04 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python