JavaScript学习之三:正则表达式
2008-09-04 10:11
330 查看
一、简单模式:
元字符: ( [ { / ^ $ | ) ? * + . 使用这些元字符,都必须进行转义。
特殊字符:/t /n /r /f /a /e /cX /b /v /0
字符类:测试字符的组合。
简单类:要匹配字符a, b, c字符类应是[abc].
负向类:除了特定一些,想匹配所以字符。匹配除了a、b所有字符是[^ab].
范围类:从a 到 z 应是[a-z].
组合类:其他类组合而成的字符类。假设要匹配所以从a到z的字母以及从1到4的数字,以及一换行符应是[a-m1-4/n].
预定义类:
4.量词:可以指定特定模式出现的次数。
简单量词:
贪婪的、惰性的和支配性的量词。
贪婪的:先匹配整个字符串,如果没有匹配,去掉最后字符串的最后一个字符,并再次尝试,依次。。
惰性的:现看字符串中的第一个字符串是不是匹配,如果不够,就读入下一个字符串,再匹配。。。
支配量词:只尝试匹配整个字符串。
二、复杂模式:
分组:"dogdog" -> /dog{2}/g
反向引用:分组都被存放一个特殊的地方以备将来使用,这些存储在分组中的特殊值,我们称之为反向引用。RegExp.$1
候选:同时匹配"red","black" 可以是/(red|black);
非捕获性分组:创建反向引用的分组是捕获性分组,而非捕获性分组不创建反向引用。
前瞻:当某一个字符出现在令一个字符之前才去捕获它。,创建正向前瞻要将模式放在(?=)如:/bed(?=room)/,负向前瞻放在(?!)之间。
边界:行开头:^ 行结尾:$ 单词的边界: /b 非单词的边界: /B 如:/(/w+)/.$/
多行模式:/(/w+)$/gm
三、理解RegExp对象:
global: g表示
ignorecase 用i表示
lastindex:下次匹配从哪个字符开始
multiline:用m表示
source: 正则表达式的元字符形式。
四、常用模式:
验证日期:var reDate =/(?:[1-9]|[12][0-9]|3[01])//(?:0[1-9]|1[0-2])//(?:19|20/d{2})/
电子邮件:var eEmail = /^(?:/W+/.?)*/w+@(?:/w+/.?)*/w+$/;
元字符: ( [ { / ^ $ | ) ? * + . 使用这些元字符,都必须进行转义。
特殊字符:/t /n /r /f /a /e /cX /b /v /0
字符类:测试字符的组合。
简单类:要匹配字符a, b, c字符类应是[abc].
负向类:除了特定一些,想匹配所以字符。匹配除了a、b所有字符是[^ab].
范围类:从a 到 z 应是[a-z].
组合类:其他类组合而成的字符类。假设要匹配所以从a到z的字母以及从1到4的数字,以及一换行符应是[a-m1-4/n].
预定义类:
. | 除了换行和回车之外的任意字符 |
/d | 数字 |
/D | 非数字字符 |
/s | 空白字符 |
/S | 非空白字符 |
/w | 单词字符 |
/W | 非单词字符 |
简单量词:
? | 出现0次或一次 |
* | 出现零次或多次(任意次) |
+ | 出现一次或多次(至少一次) |
{n} | 一定出现n次 |
{n,m} | 至少出现n次但不超过m次 |
{n,} | 至少出现n次 |
贪婪的:先匹配整个字符串,如果没有匹配,去掉最后字符串的最后一个字符,并再次尝试,依次。。
惰性的:现看字符串中的第一个字符串是不是匹配,如果不够,就读入下一个字符串,再匹配。。。
支配量词:只尝试匹配整个字符串。
贪婪 | 惰性 | 支配 | 描述 |
? | ?? | ?+ | 出现0次或一次 |
* | *? | *+ | 出现零次或多次(任意次) |
+ | +? | ++ | 出现一次或多次(至少一次) |
{n} | {n}? | {n}+ | 一定出现n次 |
{n,m} | {n,m}? | {n,m}+ | 至少出现n次但不超过m次 |
{n,} | {n,}? | {n,}+ | 至少出现n次 |
分组:"dogdog" -> /dog{2}/g
反向引用:分组都被存放一个特殊的地方以备将来使用,这些存储在分组中的特殊值,我们称之为反向引用。RegExp.$1
候选:同时匹配"red","black" 可以是/(red|black);
非捕获性分组:创建反向引用的分组是捕获性分组,而非捕获性分组不创建反向引用。
前瞻:当某一个字符出现在令一个字符之前才去捕获它。,创建正向前瞻要将模式放在(?=)如:/bed(?=room)/,负向前瞻放在(?!)之间。
边界:行开头:^ 行结尾:$ 单词的边界: /b 非单词的边界: /B 如:/(/w+)/.$/
多行模式:/(/w+)$/gm
三、理解RegExp对象:
global: g表示
ignorecase 用i表示
lastindex:下次匹配从哪个字符开始
multiline:用m表示
source: 正则表达式的元字符形式。
四、常用模式:
验证日期:var reDate =/(?:[1-9]|[12][0-9]|3[01])//(?:0[1-9]|1[0-2])//(?:19|20/d{2})/
电子邮件:var eEmail = /^(?:/W+/.?)*/w+@(?:/w+/.?)*/w+$/;
相关文章推荐
- (学习笔记)简单正则表达式的使用实例[javascript]
- JAVASCRIPT 正则表达式学习-->基础与零宽断言(转自司徒正美)
- 【学习】Javascript正则表达式——基础知识小结
- java正则表达式学习总结,以及和javascript正则表达式的区别
- javascript中正则表达式应用学习_search ()
- JavaScript学习之正则表达式
- 【前端学习笔记】Javascript中的正则表达式-实例
- 【前端学习】javascript正则表达式和字符串RegExp and String(二)
- javascript笔记——正则表达式学习笔记
- javascript中正则表达式的学习
- [JavaScript]正则表达式学习
- JavaScript正则表达式学习总结
- javascript学习笔记:正则表达式1
- 深入浅出的javascript的正则表达式学习教程
- javascript中正则表达式应用学习_test()
- [置顶] javascript正则表达式学习笔记之------正则表达式的创建和基本使用
- JavaScript学习笔记之正则表达式
- javascript学习之 正则表达式 (24)——字符匹配
- JavaScript 正则表达式学习