RegExp
两种创建方式
(1)直接量
(2)new RegExp();
个人推荐用直接量
var reg=/abc/; 用反斜杠夹住
var str=\"abcd\\\"edf\";
var reg=/abc/;
reg.test(str); 返回true 检测str中是否有reg所限定的字符
或者
var str=\"abcd\\\"edf\";
var reg=/abc/;或者 var reg=new RegExp(\"abc\");
reg.test(str); 返回true 检测str中是否有reg所限定的字符
方括号
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。
var str=\"abcabcabcabcabc\";
var reg=/[abc]/g;
str.match(reg);
返回结果为 [\"a\", \"b\", \"c\", \"a\", \"b\", \"c\", \"a\", \"b\", \"c\", \"a\", \"b\", \"c\", \"a\", \"b\", \"c\"]
如果改为
var str=\"abcabcabcabcabc\";
var reg=/[^abc]/g;
str.match(reg);
返回结果为null
元字符
元字符(Metacharacter)是拥有特殊含义的字符:
元字符 描述
. 查找单个字符,除了换行和行结束符。
\\w 查找单词字符。
\\W 查找非单词字符。
\\d 查找数字。
\\D 查找非数字字符。
\\s 查找空白字符。
\\S 查找非空白字符。
\\b 匹配单词边界。
\\B 匹配非单词边界。
\\0 查找 NUL 字符。
\\n 查找换行符。
\\f 查找换页符。
\\r 查找回车符。
\\t 查找制表符。
\\v 查找垂直制表符。
\\xxx 查找以八进制数 xxx 规定的字符。
\\xdd 查找以十六进制数 dd 规定的字符。
\\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
量词
量词 描述
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 至 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。
var str=\"aaabcabcabcabcabc\";
var reg=/a{2}/g;
str.match(reg)
贪婪模式和懒惰模式
http://www.jb51.net/article/73402.htm
正则表达式,表示字符串重复个数元字符,\'?,+,*,{}\' 默认都会选择贪婪模式,会最大长度匹配字符串,而要切换到懒惰模式,就只是在该元字符,后面加多一个”?” 即可切换到非贪婪模式(懒惰模式)。
子表达式()的应用
<script type=\"text/javascript\">
var a=\'asdf()asdfasdf()asdf\';
var reg=new RegExp(\"asdf(.*?)df\",\"g\");
while ((b=reg.exec(a)) != null) {
document.write(b);
document.write(\"<br />\");
document.write(reg.lastIndex);
document.write(\"<br />\");
}
输出结果为
asdf()asdf,()as
10
asdf()asdf,()as
20
这里的.*正好代表任何字符,如果不加?则会输出
asdf()asdfasdf()asdf
20
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。




