javascript之正则表达式

  • new
    var re = new RegExp('test','gi');
    var re = /test/gi;
  • function
    test();//bool
    exec();//string 一次匹配并返回
    match();//array 多次匹配并返回
    search();//类似indexOf()
    replace();//替换
    split();//分割
  • 有用的预定义类
    .        [^\n\r]//不包含换行的任何字符
    \d         [0-9]
    \D         [^0-9]
    \s         [\t\n\x0B\f\r]//空字符,换行符
    \S         [^\t\n\x0B\f\r]//非空,非换行
    \w         [a-zA-Z0-9]
    \W         [^a-zA-Z0-9]
  •  量词
    ?         {0,1}
    *         {0,}
    +         {1,}
    {n}     一定出现n次
    {n,m}    至少出现n次,但不超过m次
    {n,}     至少出现n次
  • 贪婪:    "{m,n}", "{m,}", "?", "*", "+"
    (d)(\w+)         "\w+" 将匹配第一个 "d" 之后的所有字符 "xxxdxxxd"
    (d)(\w+)(d)     "\w+" 将匹配第一个 "d" 和最后一个 "d" 之间的所有字符 "xxxdxxx"。虽然 "\w+" 也能够匹配上最后一个   "d",  但   是为了使整个表达式匹配成功,"\w+" 可以 "让出" 它本来能够匹配的最后一个 "d"
  • 懒惰:    "{m,n}?", "{m,}?", "??", "*?", "+?"
    (d)(\w+?)         "\w+?" 将尽可能少的匹配第一个 "d" 之后的字符,结果是:"\w+?" 只匹配了一个 "x"
    (d)(\w+?)(d)     为了让整个表达式匹配成功,"\w+?" 不得不匹配 "xxx" 才可以让后边的 "d" 匹配,从而使整个表达式匹配成功。因此,结果是:"\w+?" 匹配 "xxx"
  • 分组
    var test = '([1-2])([a-z])';

    test.replace(reg,function(r0,r1){
    console.log(r1);//可用r0,r1进行任意操作
    console.log(RegExp.$1);//等价r1
    });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值