关于javascript正则“反向引用”
来源:互联网 发布:淘宝卖家假发票 编辑:程序博客网 时间:2024/04/29 18:07
前言:一直忙着找实习单位,足足有一个半月没有写过博客,也没有学习过,终于找到一个勉强合适的,还是赶紧加油吧,别被别人甩太远了!(话说这天好冷啊)。
本来是在看着阿树博客里的jQuery规范的,不知道怎么搞得,稀里糊涂的就看到正则去了,把学到的东西总结一下:
首先先看下面这个例子:
"abcd".match(/(a(bc)d)/);//result: ["abcd", "abcd", "bc"]这个例子说明看括号匹配顺序是按左括号计算的。(这是别人的理解,我的理解是匹配顺序是按从外到里从左到右计算的,每个反向引用都由一个编号或名称来标识,并通过“\编号”表示法进行引用,外面的组的编号靠前。也就是说引用分组是编号排列是从外到内编排。)
再看这个例子
'aaa'.match(/(a\1)/);//result: ['a']'aaaaaaa'.match(/(a\1\1\1\1\1)/);//result: ['a']
\1
引用是没有意义的,看来在chrome中的测试结果表明,无论在第n个括号中有几个\n
都会被忽略。(既从最外层括号往里层数)'aaabbbcccdddeeefff'.match(/[abc]\1/g);//null'aaabbbcccdddeeefff'.match(/([abc])\1/g);//["aa", "bb", "cc"]'aaabbbcccdddeeefff'.match(/(([abc])\1)\1/g);//["aa", "bb", "cc"]'aaabbbcccdddeeefff'.match(/(([abc])\1)\2/g);//["aa", "bb", "cc"]'aaabbbcccdddeeefff'.match(/((([abc])\1)\2)\3/g);//["aaa", "bbb", "ccc"]
基于这个原因,浏览器其实把下边的正则翻译成以下这样:
'aaabbbcccdddeeefff'.match(/[abc]\1/g);//null'aaabbbcccdddeeefff'.match(/([abc])\1/g);//["aa", "bb", "cc"]'aaabbbcccdddeeefff'.match(/(([abc]))\1/g);//["aa", "bb", "cc"]'aaabbbcccdddeeefff'.match(/(([abc]))\2/g);//["aa", "bb", "cc"]'aaabbbcccdddeeefff'.match(/((([abc]))\2)\3/g);//["aaa", "bbb", "ccc"]
详细请看:http://segmentfault.com/q/1010000000580762
1 0
- 关于javascript正则“反向引用”
- javascript 正则表达式 反向引用
- javascript 正则表达式 反向引用
- javascript中正则表达式反向引用
- 正则表达式反向引用
- 正则之反向引用
- 正则表达式:反向引用
- 正则表达式:反向引用
- 正则-反向引用
- 正则表达式反向引用
- 正则表达式 反向引用
- 正则表达式中的反向引用
- 12.正则表达式:反向引用
- 正则表达式之反向引用
- 正则表达式中的反向引用
- 正则表达式的反向引用
- 正则表达式的反向引用
- 正则表达式的反向引用
- Mysql事务以及加锁机制
- iOS访问相册和相机
- 过河问题(牛虎过河、商人仆人过河、农夫妖怪过河、传教士野人过河)(第2届第2题)
- 【蓝桥第三周】汉诺塔
- ubuntu(14.04) synaptics 触摸板失灵修复(奇怪的系统相互干扰)
- 关于javascript正则“反向引用”
- php move_uploaded_file 中文乱码问题或上传失败问题
- 程序员的10种级别
- uva 10602——Editor Nottoobad
- jquery全选,全不选,反选,获取选择框的值
- 游戏引擎cocos2d-android使用大全
- hover效果加边框不抖动
- 设备驱动的艺术之旅 - loopback.c
- Java类中的成员变量的赋值方法