`
Black_Kite
  • 浏览: 6713 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

正则表达式

1.var re = new RegExp("cat","g");

2.var re = /cat/gi;

注:i——忽略大小写;g——全局匹配;m——匹配多行

 

RegExp的方法

1.test()——找到匹配返回true,否则返回false

   var s = "aacat";

   var re = /cat/;

   alert(re.test(s));  //返回true

2.exec()——在字符串中搜索,并把匹配结果用一个数组返回

   var s = "a bat, a cat, aa";

   var re = /at/;

   var r = re.exec(s);  //只返回第一个at

 

String的方法

1.match()——类似于exec,返回存放匹配结果的整个数组

2.search()——返回匹配项在字符串中的位置索引,没有返回-1

3.replace()——将匹配替换成指定字符串

   var dt = '12-01-2007';

   dt.replace(/^(\d{2})-(\d{2})-(\d{4})^/,'$3$2$1');  //返回20070112

注:replace的第二个参数可以是函数,该函数可以接受一个参数,该参数是匹配了前面正则的文本

4.split()——将字符串分割成一系列字串并通过一个数组将他们返回

   var s = "red,blue,yellow,green";

   var re = /\,/;

   var a = s.split(re);

注:后两个是扩展字符串的常用方法

 

元字符

()[{\^$|)?*+.  需要用\来转义

 

字符类

1.简单类 /bac/

2.负向类 /[^ac]/

3.范围类 /[a-v]/

注:JavaScript不支持联合类和交叉类,如[a-m[p-z]] [a-m[^b-e]]

 

预定义类

. [^\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]——非单词字符

 

量词

?——出现零次或一次

*——出现零次或多次

+——出现一次或多次

{n}——定出现n次

{n,m}——至少出现n次但不超过m次

{n,} ——至少出现n次

 

贪婪的、惰性的和支配性的量词

1.贪婪量词——先看整个字符串是否匹配。如果没有匹配,则去掉字符串的最后一个字符,并再次尝试匹配。直到发现一个匹配,或者字符串不剩任何字符。

——所有量词自身都是贪婪的 ?

2.惰性匹配——先看字符串中第一个字符是否匹配,如果不匹配则在读入下一个字符。直到发现一个匹配或者整个字符串都没有匹配

——所有量词后面加上?是惰性的 ??

3.支配量词——只尝试匹配整个字符串,若不匹配则不再尝试。

——所有量词后面加上+是支配性的 ?+

 

例子:

var s = "abbbaabbbaaabbb1234";

var r1 = /.*bbb/g;

var r2 = /."?bbb/g;

var r3 = /.*+bbb/g;

注:惰性量词的工作方式和贪婪相反;很多浏览器不支持支配量词。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics