盘点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封装DOMContentLoaded事件实例
Jun 12 Javascript
在Javascript中处理字符串之big()方法的使用
Jun 08 Javascript
js验证框架之RealyEasy验证详解
Jun 08 Javascript
jQuery获取select选中的option的value值实现方法
Aug 29 Javascript
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
React Native基础入门之初步使用Flexbox布局
Jul 02 Javascript
js字符串倒序的实例代码
Nov 30 Javascript
深入探讨JavaScript的最基本部分之执行上下文
Feb 12 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
Mar 21 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 Javascript
js实现鼠标滑动到某个div禁止滚动
Sep 17 Javascript
Antd的table组件表格的序号自增操作
Oct 27 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
python实现udp数据报传输的方法
2014/09/26 Python
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
python队列queue模块详解
2018/04/27 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
python重要函数eval多种用法解析
2020/01/14 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
美容院考勤制度
2014/01/30 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python