盘点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获取IP地址的方法小结
Jul 01 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
Oct 17 Javascript
javascript继承机制实例详解
Nov 20 Javascript
JavaScript 数组中最大最小值
Jun 05 Javascript
利用vue.js插入dom节点的方法
Mar 15 Javascript
微信小程序本地缓存数据增删改查实例详解
May 24 Javascript
基于JavaScript实现无限加载瀑布流
Jul 21 Javascript
前端主流框架vue学习笔记第二篇
Jul 26 Javascript
javascript 产生随机数的几种方法总结
Sep 26 Javascript
vue2中使用less简易教程
Mar 27 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 jQuery
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
教你用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调用新浪短链接API的方法
2014/11/08 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
javascript 数组操作详解
2015/01/29 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
浅析JS抽象工厂模式
2017/12/14 Javascript
vue.js计算属性computed用法实例分析
2018/07/06 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
深入理解python中sort()与sorted()的区别
2018/08/29 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
Linux机考试题
2015/07/17 面试题
金融专业个人求职信范文
2013/11/28 职场文书
学习方法演讲稿
2014/05/10 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
2014年医务科工作总结
2014/12/18 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
商业计划书格式、范文
2019/03/21 职场文书
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server