引用地址:http://www.iteye.com/topic/481228 和http://www.cnblogs.com/rubylouvre/archive/2010/03/09/1681222.html
一.创建方法:
1. var te = new RegExp("匹配的内容",“匹配模式”);
2. var te = /匹配的内容/匹配的模式;
二.匹配的内容:
1.预定义字符类:
字符 | 正则 | 描述 |
---|---|---|
\t | /\t/ | 制表符 |
\n | /\n/ | 制表符 |
\r | /\r/ | 回车符 |
\f | /\f/ | 换页符 |
\a | /\a/ | alert字符 |
\e | /\e/ | escape字符 |
\cX | /\cX/ | 与X相对应的控制字符 |
\b | /\b/ | 与回退字符 |
\v | /\v/ | 垂直制表符 |
\0 | /\0/ | 空字符 |
2.预定义类
字符 | 等同于 | 描述 |
---|---|---|
. | [^\n\r] | 除了换行和回车之外的任意字符 |
\d | [0-9] | 数字字符 |
\D | [^0-9] | 非数字字符 |
\s | [ \t\n\x0B\f\r] | 空白字符 |
\S | [^ \t\n\x0B\f\r] | 非空白字符 |
\w | [a-zA-Z_0-9] | 单词字符(所有的字母) |
\W | [^a-zA-Z_0-9] | 非单词字符 |
[...] | 方括号内的任意字符 | |
[^....] | 不在方括号内的任意字符 |
3.量词
代码 | 类型 | 描述 |
---|---|---|
? | 软性量词 | 出现零次或一次 |
* | 软性量词 | 出现零次或多次(任意次) |
+ | 软性量词 | 出现一次或多次(至道一次) |
{n} | 硬性量词 | 对应零次或者n次 |
{n,m} | 软性量词 | 至少出现n次但不超过m次 |
{n,} | 软性量词 | 至少出现n次(+的升级版) |
4.边界
边界 | ||
---|---|---|
正则 | 名称 | 描述 |
^ | 开头 | 注意不能紧跟于左中括号的后面 |
$ | 结尾 | |
\b | 单词边界 | 指[a-zA-Z_0-9]之外的字符 |
\B | 非单词边界 |
5.选择、分组、引用
属性 | 名称 | 描述 |
---|---|---|
| | 竖线 | 分隔供选择的字符串,每个字符串都可匹配 |
(.....) | 圆括号 | 第一种作用是将几个项组合成表达式后可以跟随次数,第二个作用定义子模式 |
(?:......) | 问号分好 | |
/n | ||
三、匹配的模式(放在最后一个斜线的后边)
g (全文查找)
i (忽略大小写)
m (多行查找)
四、方法
1.test-检测查找的字符串中是否有这个匹配的,返回boolean-true或false----形式:模式.test(字符串)
window.onload = function () {
var aaa = 'abc2013abc2012def2011';
var bbb = 'www.hao123.com.cn';
var ta = RegExp("abc");
alert(ta.test(aaa)); //输出true
}
2.exec-返回匹配的字符串
window.onload = function () {
var ccc = 'WWW123@$#%#abc456@$#%@';
var ta = /(\W+)+/g; //(\W+)是代表一串非字符,(\W+)+代表所有的非字符串
alert(ta.exec(ccc)); //输出 @$#%#,@$#%#
}
3.match-返回匹配的字符串
上例--> alert(ccc.match(ta)); //输出 @$#%#,@$#%#