盘点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调试说明
Jun 07 Javascript
jquery 年会抽奖程序
Dec 22 Javascript
表单的焦点顺序tabindex和对应enter键提交
Jan 04 Javascript
javascript改变position值实现菜单滚动至顶部后固定
Jan 18 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
详解AngularJS中的表达式使用
Jun 16 Javascript
JavaScript必看小技巧(必看)
Jun 07 Javascript
JS自动生成动态HTML验证码页面
Jun 14 Javascript
Angular父子组件通过服务传参的示例方法
Oct 31 Javascript
Vue中实现权限控制的方法示例
Jun 07 Javascript
解决layui调用自定义方法提示未定义的问题
Sep 14 Javascript
package.json各个属性说明详解
Mar 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
jQuery 学习 几种常用方法
2009/06/11 Javascript
jquery 表单进行客户端验证demo
2009/08/24 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
Python中格式化字符串的四种实现
2020/05/26 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
建筑工程实习自我鉴定
2013/09/19 职场文书
产假请假条
2014/04/10 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript