真无聊,整理了一个正则表达式的FAQ!
无爱大叔 2002-12-02 03:25:05 正则表达式标记:
//////////////////////////////////////////////////////
i 大小写不敏感
g 全局匹配。找出字符串中的全部匹配,不仅仅是第一个
m 多行匹配
//////////////////////////////////////////////////////
正则的常用方法:
var pattern=/http/;
var patternIgnoringCase=/http/i;
还可以用RegExp()构造器来声明:
var pattern = new RegExp("http");
var patternIgnoringCase = new RegExp("http","i");
RegExp的基本方法是test()如:
pattern.test("HTTP://www.csdn.net");//返回假
patternIgnoringCase.test("HTTP://www.csdn.net");//返回真
生成模式:
位置指示符----这样的字符有:^和$,分别指示字符串的开头和末尾
var pattern=/http&/;//匹配以http结束的字符串。
var pattern=/^http$/;//只匹配字符串"http"
转义码:
/////////////////////////////////////////////////////
\f 换页
\n 换行
\r 回车
\t 制表符
\v 垂直制表符
\/ 正斜杠
\\ 反斜杠
\. 局号"."
\* 星号"*"
\+ 加号"+"
\? 问号"?"
\| 垂直条"|"
\( 括号"("
\) 括号")"
\[ 括号"["
\] 括号"]"
\{ 括号"{"
\} 括号"}"
\000 八进制000代表的ASCII字符
\xHH 十六进制值HH代表的ASCII字符
\uHHHH 十六进制HHHH代表的统一代码(Unicode)字符
\cX 由^X代表的控制字符,比如\cH代表Ctrl-H
/////////////////////////////////////////////////////
例:var pattern=/http:\/\/www\.csdn\.net\//; //匹配整个http://www.csdn.net
正则表达式的重复字符:
/////////////////////////////////////////////////////
* 匹配前面的项目0或者更多次
+ 匹配前面的项目1或者更多次
? 匹配前面的项目0或者1次
{m,n} 匹配前面的项目最少m次,但不超过n次
{m,} 匹配前面的项目m次或者更多次
{m} 匹配前面的项目m或者更多次
/////////////////////////////////////////////////////
例:var pattern=/ab{3,}c/; //匹配一个a,3个或更多b,一个c
正则表达式的字符类:
/////////////////////////////////////////////////////
[chars] 方括号内指明范围的字符 pattern=/[a-z]/;
[^chars] 同上相反
. 除换行符以外的任何字符
\w 任何单字字符,如:[a-zA-Z0-9_]
\W 如:[^a-zA-Z0-9_]
\s 任何空格字符,如:[\t\n\r\f\v]
\S 如:[^\t\n\r\f\v]
\d 任何数字,如:[0-9]
\D 如:[^0-9]
\b 任何单字分界,在\w和\W之间的空格
\B 任何非单字分界,在单字字符之间的“空格“
[\b] 任何退格字符
/////////////////////////////////////////////////////