JavaScript之正则表达式

1、两种方式创建正则表达式

  JS风格var re = /ab+c/;
 Perl风格:/ab+c/;

2、字符串与正则配合

   -->search:返回出现的位置,对大小写敏感(使用/i(忽略大小写));
   -->match:返回获取的项目,匹配不到则返回null;
   -->replace:替换所有的匹配(敏感词过滤)(str.replace(/mic),"tihuan");
   -->exec:在字符串中执行查找匹配的方法,它返回一个数组(未匹配到则返回null);
   -->test:在字符串中测试是否匹配的方法,它返回true或false。

3、边界

字符

含义

^

以xx开头

$

以xx结尾

\b

单词边界,指[a-zA-Z_0-9]之外的字符

\B

非单词边界



















4、量词

字符 含义
? 出现零次或一次(最多出现一次)
+ 出现一次或多次(至少出现一次)
* 出现零次或多次(任意次)
{n} 出现n次
{n,m} 出现n到m次
{n,} 至少出现n次















5、贪婪模式

'123456789'.match(/\d{3,5}/g); //["12345", "6789"] 会尽可能多匹配,即先5个再4个
非贪婪,一旦成功匹配则不再继续尝试, 在量词后加上 ?
'123456789'.match(/\d{3,5}?/g); //["123", "456", "789"]

6、前瞻

表达式 含义
exp1(?=exp2) 匹配后面是exp2的exp1
exp1(?!exp2) 匹配后面不是exp2的exp1







(/good(?=Byron)/).exec('goodByron123'); //['good']
(/good(?=Byron)/).exec('goodCasper123'); //null
(/bad(?=Byron)/).exec('goodCasper123');//null

7、分组

中括号表示范围内选择,大括号表示重复次数。小括号允许我们重复多个字符。
//分组+量词
alert(/(dog){2}/.test("dogdog"))//true
//分组+范围
alert("baddad".match(/([bd]ad?)*/))//baddad,dad
//分组+分组
alert("mon and dad".match(/(mon( and dad)?)/))//mon and dad,mon and dad, and dad

var reg = /(red|black|yellow)!!/;
alert(reg.test("red!!"))//true
alert(reg.test("black!!"))//true
alert(reg.test("yellow!!"))//true


你可能感兴趣的:(JavaScript,jquery)