正则表达式【十】

RegExp的静态属性

RegExp支持一些静态属性。在使用正则表达式对象对字符串执行搜索的过程中,一旦匹配成功,这些静态属性的值将自动更新,以反映匹配的结果。

RegExp的静态属性

静态属性描述
index是当前表达式模式首次匹配内容的开始位置,从0开始计数。其初始值为-1 。每次成功匹配时,其属性值都会随之改变。
input返回当前所作用的字符串,初始值为空字符串“”
lastMatch是当前表达式模式的最后一个匹配字符串,其初始值为空字符串“”。每次成功匹配时,其属性值都会随之改变
lastParen如果表达式模式中有括起来的子匹配,是当前表达式模式中最后的子匹配所匹配到的子字符串。其初始值为空字符串“”。每次匹配成功时,其属性都会随之改变
leftContext是当前表达式模式最后一个匹配字符串左边的所有内容。初始值为空字符串“”。每次成功匹配时,其属性值都会随之改变
rightContext是当前表达式模式最后一个匹配字符串右边的所有内容。初始值为空字符串“”。每次成功匹配时,其属性值都会随之改变
$1…$9属性如果表达式模式中有括起来的子匹配,$1…$9属性值分贝时第一个到第9个子匹配所捕获到的内容。如果有超过9个以上的子匹配,$1…$9属性分别对应最后的9个子匹配。在一个表达式模式中,可以指定任意多个带括号的子匹配,但RegExp对象只能存储最后的9个子匹配的结果。在RegExp实例对象exec()方法所返回的数组中,可以获得所有圆括号内的子匹配结果

字符串对象中与正则相关的方法:

字符串对象中有几个方法都与正则表达式有密切的关系

方法描述
match()找到一个或多个正则表达式的匹配
replace()替换正则表达式匹配的子串
search()检索与正则表达式相匹配的值
split()把字符串分割为字符串数组
  1. match()方法
    用于按匹配模式从字符串中提取子字符串,得到子字符串的数组。

    <html>
        <head>
        <script>
        var str="{12,34},{56,78},{90,12}";
        var re=/{\d+,\d+}/gi;
        var arr=str.match(re);
        document.write("按匹配模式从字符串中提取获得的子字符串数组包含"+arr.length+"个元素<br />");
        for(var i=0;i<arr.length;i++)
            {
                document.write(arr[i]+"<br />");
            }
        </script>
    </head>
      
    </html>   
    

    运行结果:

    按匹配模式从字符串中提取获得的子字符串数组包含3个元素

    {12,34}

    {56,78}

    {90,12}

  2. 2.search()方法

    用于按匹配模式在字符串中搜索,返回第一个匹配的位置。类似于indexOf( )方法。

    <html>
        <head>
        <script>
        var str="这是一本javascript的教材";
        var re=/JavaScript/i;
        var index=str.search(re);
        document.write(index);//输出“4”
        </script>
    </head>
    </html>
    
  3. replace()方法

    用于将字符串中满足匹配模式的子字符串替换为另一个字符串。

    <html>
        <head>
        <script>
        var str="下一行代码创建了一个RegExp对象。";
        var re=new RegExp("regExp","i");
        var result=str.replace(re,"正则表达式");
        document.write(result);
    </script>
    </head>
    </html>
    

    运行结果:

    下一行代码创建了一个正则表达式对象。

  4. split()方法

    用于按匹配模式分割字符串,返回子字符串的数组。

    <html>
        <head>
        <script>
        var str="123,234,345,456";
        var re=/\,/;
        var arr=str.split(re);
        for(var i=0;i<arr.length;i++){
            document.write(arr[i]+"<br/>");
        }
    </script>
    </head>
    </html>
    

    运行结果:

    123

    234

    345

    456

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值