盘点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 相关文章推荐
extjs form textfield的隐藏方法
Dec 29 Javascript
JS 拼图游戏 面向对象,注释完整。
Jun 18 Javascript
基于jQuery的星级评分插件
Aug 12 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
Oct 15 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
Jan 09 Javascript
jquery中append()与appendto()用法分析
Nov 14 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
Oct 27 Javascript
AngularJS基础 ng-list 指令详解及示例代码
Aug 02 Javascript
vue插件tab选项卡使用小结
Oct 27 Javascript
JSON与JS对象的区别与对比
Mar 01 Javascript
vue ssr 指南详读
Jun 29 Javascript
javascript中的相等操作符(==与===区别)
Dec 21 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基础知识:函数基础知识
2006/12/13 PHP
为PHP初学者的8点有效建议
2010/11/20 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
Python中类的继承代码实例
2014/10/28 Python
python创建和删除目录的方法
2015/04/29 Python
Python 爬虫学习笔记之多线程爬虫
2016/09/21 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Django 内置权限扩展案例详解
2019/03/04 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
视图的作用
2014/12/19 面试题
工程预算与管理应届生求职信
2013/10/06 职场文书
大学学习生活感言
2014/01/18 职场文书
学生评语大全
2014/04/18 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
党校党性分析材料
2014/12/19 职场文书
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android