您的位置:首页 > Web前端 > JavaScript

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].

预定义类:
.除了换行和回车之外的任意字符
/d数字
/D非数字字符
/s空白字符
/S非空白字符
/w单词字符
/W非单词字符
4.量词:可以指定特定模式出现的次数。

简单量词:

出现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+$/;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: