正则表达式基础

正则表达式简写为RegExp,定义方式为:  var patt1=new RegExp("e");

 

1.正则对象有3个方法:test()、exec()、compile()。

test()方法检索字符串中的指定值,返回true或false:

var patt1=new RegExp("e");

document.write(patt1.test("The best thing in life are free."));//true

 

exec()方法检索字符串中的指定值,返回值是被找到的值,如果没有发现匹配,则返回null;

var patt1=new RegExp("e");

document.write(patt1.exec("The best things in life is free."));//e

在RegExp对象添加第二个参数"g"时,可以搜索匹配模式的所有存在信息。

var patt1=new RegExp("e","g");

do{

result1=patt1.exec("The best thing in life are free.");

document.write(result);

}

while(result!=null)   //eeeeeenull

 

compile()方法用于改变RegExp,既可以改变搜索模式,也可以添加或者删除第二个参数。

var patt1=new RegExp("e");

document.write(patt1.test("The best thing in life are free."));

patt1.compile('d');

document.write(patt1.test("The best thing in life are free."));   //truefalse

 

2.修饰符

i:执行对大小写不敏感的匹配;new RegExp('regexp','i');

g:执行全局匹配;new RegExp('regexp','g')

m:执行多行匹配。

 

3.方括号的用法

[abc]:查找方括号之间的任何字符;

[^abc]:查找任何不在方括号之间的字符;

[0-9]:查找0到9的数字;

[a-z]:查找小写a 到 z的字符;

[A-Z]:查找大写A 到Z的字符;

 

4.元字符,是拥有特殊含义的字符

.:查找单个字符,除了换行和行结束符;

\w:单词字符;

\W:非单词字符;

\d:数字字符;

\D:非数字字符;

\s:空白字符;

\S:非空白字符;

\b:匹配单词边界;//大小写字母、数字、下划线为可以组成单词的字符,这些字符和其他字符相邻则为单词边界。

\B:匹配非单词边界;

\0:查找NUL字符;

\n:查找换行符;

\f:换页符;

\r:回车符;

\t:制表符;

\v:垂直制表符;

\xxx:以八进制xxx规定的字符

\xdd:以十六进制dd规定的字符

\uxxxx:以十六进制xxxx规定的Unicode字符。

 

5.量词

‘^’和‘$’

两个特殊符号‘^’和‘$’,表示一个字符串的开始和结束。

"^apple$":表示由apple开始和结束的字符串。

"apple":表示任何包含apple的字符串。

 

*,+,?:这三个符号表示一个或一个序列字符重复出现的次数:

* :表示没有或者更多。/"ab*"表示一个字符串中有一个a后面跟着零个或者若干个b('a''ab''abb'......)

+:表示一次或者更多。/'ab+'表示一个字符串有一个a后面跟着至少一个b。

?:表示没有或者一次。/'ab?'表示一个字符串有一个a后面跟着零个或者一个b。

"a?b+$"表示字符串的末尾有零个或者一个a跟着一个或者若干个b。

?=n:匹配任何其后紧接字符串n的字符串;

?!n:匹配任何其后没有紧接字符串n的字符串。

使用{}可以具体表示重复次数:

'ab{2}'表示a后两个b;

'ab{2,}'表示a后至少两个b;//不能是'ab{,2}'

'ab{3,5}'表示a后3到5个b;

在正则表达式里面,或用'|'表示:

'a|b':表示字符串中有'a'或者'b';

'(a|b)*c':"a""b"混合的字符串后面有一个c;

' . '用来替代任何字符:

'a.[0-9]':表示一个字符串有一个a后面跟着一个任意字符和一个数字。

'^a.{3}$':表示一个a开头后面跟了3个任意字符的字符串(长度为4个字符);

[]用于表示某些字符允许在一个字符串中的某一个特定位置出现。

'[ab]':表示一个字符串中有一个a或b,同'a|b';

'[a-b]':表示一个字符串中有小写的a到b中的一个;

'[abcd]':表示一个字符串中一个a或b或c或d,同"a|b|c|d";

在[]里面,'^'表示不希望出现的字符,应放在最前面:

%[^a-zA-Z]%:百分号里面不出现字母。

 

'^.$()|*_?{\'这些字符前需要加上转义字符"\",在[]里面时,不用加转义字符。

 

6.支持正则表达式的String对象的方法

search:检索与正则表达式相匹配的值。/stringObject.search(regexp);对大小写敏感,不匹配返回-1,忽略g,总是返回第一个匹配的位置。

match:找到一个或多个正则表达式的匹配;/stringObject.match();返回字符串值,需要有全局标志g。

replace:替换与正则表达式匹配的字符串;/stringObject.replace();参考http://www.w3school.com.cn/jsref/jsref_replace.asp

split:把字符串分割为字符串数组。/参考http://www.w3school.com.cn/jsref/jsref_split.asp

 

posted @ 2016-10-19 09:37  catherinehd  阅读(151)  评论(0编辑  收藏  举报