盘点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实现网页滚动条感应鼠标变色的方法
Feb 26 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
JQuery fileupload插件实现文件上传功能
Mar 18 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
Apr 21 Javascript
node.js中axios使用心得总结
Nov 29 Javascript
React教程之封装一个Portal可复用组件的方法
Jan 02 Javascript
微信小程序实现发红包功能
Jul 11 Javascript
jquery 动态遍历select 赋值的实例
Sep 12 jQuery
分享一个vue项目“脚手架”项目的实现步骤
May 26 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
Jul 13 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
Nov 06 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
SMARTY学习手记
2007/01/04 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
python代码实现ID3决策树算法
2017/12/20 Python
快速了解python leveldb
2018/01/18 Python
Python中多个数组行合并及列合并的方法总结
2018/04/12 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
python sort、sort_index方法代码实例
2019/03/28 Python
Python魔法方法功能与用法简介
2019/04/04 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Python获取时间戳代码实例
2019/09/24 Python
Python3并发写文件与Python对比
2019/11/20 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
总经理的岗位职责
2014/02/23 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
大学开学计划书
2014/04/30 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
人事局接收函
2015/01/31 职场文书
外出学习心得体会范文
2016/01/18 职场文书
《所见》教学反思
2016/02/23 职场文书
GPU服务器的多用户配置方法
2022/07/07 Servers