JavaScript正则表达式

创建正则表达式

  1. 使用字面量

    /**
    * /正则表达式主体/修饰符(可选)
    */
    var r = /(\d+)/g;
  2. 使用Reg构造器

    var r = new RegExp("(\d+)","g");

正则表达式修饰符

修饰符含义
g全局匹配
i忽略大小写
m多行匹配

正则表达式特殊字符

  1. 元字符

    字符含义
    \d匹配一个数字
    \D匹配一个非数字字符
    \w匹配一个单字字符(字母、数字或者下划线)
    \W匹配一个非单字字符
    \s匹配一个空白字符,包括空格、制表符、换页符和换行符
    \S匹配一个非空白字符
    \b匹配一个单词边界
  2. 量词

    字符含义
    *匹配一个表达式零次或多次
    +匹配一个表达式一次或多次
    ?匹配一个表达式零次或一次
    {n}匹配一个表达式n次
    {n,m}匹配一个表达式至少n次,至多m次
    [xyz]匹配方括号的中任意字符
    [^xyz]匹配任何没有包含在方括号中的字符
    xy

正则表达式分组模式

字符含义
(x)匹配 ‘x’ 并且记住匹配项,(捕获型)
(?:x)匹配 ‘x’ 但是不记住匹配项(非捕获型)
x(?=y)匹配’x’仅仅当’x’后面跟着’y’(向前正向匹配)
x(?!y)匹配’x’仅仅当’x’后面不跟着’y’(向前负向匹配)

正则表达式方法

  1. 字符串方法

    方法含义
    replace在字符串中用一些字符替换另一些字符或与正则表达式匹配的子串
    search查找字符串中指定的子字符串,或与正则表达式相匹配的子字符串,并返回子串的起始位置

    e.g.

    var str = "abcdefg",
        r   = /bc/g;
    console.log(str.search(r));            //1
    console.log(str.replace(r,"12"));      //a12defg
    
  2. 正则方法

    方法含义
    test检测一个字符串是否匹配某个模式,匹配则返回true,否则返回false
    exec检索字符串中的正则表达式的匹配。返回一个数组,存放匹配的结果

    e.g.

    var str = "abcdefgbcasbc",
        r   = /(bc)/g;
    console.log( r.test(str) );            // true
    console.log( r.exec(str) );      //["bc", "bc", index: 1, input: "abcdefgbcasbc"]
    console.log( r.exec(str) );      //["bc", "bc", index: 7, input: "abcdefgbcasbc"]

    注意:使用test或者exec方法时,对同一字符串多次匹配,每次匹配的起点是从正则表达式对象的lastIndex开始的。使用g修饰符时lastIndex每次执行会改变

    e.g.

    var r   = /aaa/g,
        str = "aaaAaaaBcdefg";
    r.test(str);    // true, r.lastIndex = 3
    r.test(str);    // true, r.lastIndex = 7
    r.test(str);    // false,r.lastIndex = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值