学习 Javascript 正则表达式(一)————使用正则表达式对String对象解析

      上次面试的时候,人家问起Javascript,随便聊了聊,Javascript里的东西到是没有难到我。但是问起正则表达式的时候,到是彻底的难倒我了。倒不是没有看过,学Java的时候,确实看过。但当时是学Java,谁会有心情仔细看什么正则表达式呢?而且Java书上也就那么几页,肯定不够干什么的。正好现在有闲暇时间,拿出来学习一下,这么重要的东西可不能不会。 好现在开始:

       首先是正则表达式的英文名称:Regular Expression

       之后是创建第一个RegExp变量。创建RegExp变量有两种方法,一种是像创建String时一样,直接使用字符串定义。另一种是使用ReqExp构造函数创建。

       第一种方法是:

             var pattern = /sS/;

       第二种方法是:

             var pattern = new RegExp("sS");
             var zipcode=new ReqExp("//d{5}","g");     //第一个变量是正则表达式(/ / 里的),第二个是用来加i或g的。

     
       创建完对象,我们写几个例子来说明如何在Javascript中,使用正则表达式。

             首先使用正则表达式对String对象解析,这也是我们最经常使用的。String对像包含四个有用的方法,第一个是search方法。

                   “JavaScript”.search(/script/i/);
                   //这个方法返回值是4,也就是javascript第五个字母。开始值是0,所以是4。

            第二个方法是replace(var,var);  使用方法,用需要替换的字符串调用,第一个参数填 正则表达式,第二个参数添加需要替换的 字符串。

                  var text="Java is my love, my best lover is Java.";
                  var result=text.replace(/java/gi,"Bava");   // i用来忽略大小写,g用来搜索整个字符串。

                  《JavaScript权威指南》上一个很漂亮的使用例子。
                   var text="Java is my love, my best lover is Java.";
                   var quote=/"([^"]*)"/g;
                   var result=text.replace(quote,"''/$1''");
                   //可以将 "Java..." 周围的“,替换成''


            第三个方法是match,它会返回一个数组,即与正则表达式相匹配的数组。

                text2="1 plus 2 equals 3";
                var result2 =text2.match(//d+/g);
                alert(result2[0]);  
                //输出1,result2的数组里是 1,2,3,
             注:即使text2执行的不是全局收索(不加g),也会返回数组,这时的是第一个全比配值,之后是部分匹配。

            最后一个是也是一个很有用的方法。split()它可以将像,123,456,789,0这样的字符串分解成一个数组。

                text3="123,456,789,0";
                result3=text3.split(",");
                alert(result3[1]);
                //返回456,当然这个例子没用正则表达式。
        
             《JavaScript权威指南》上还有一个很漂亮的使用例子。

                text3="123, 456, 789,0";
                result3=text3.split(//s*,/s*/);
                alert(result3[1]);
                //这个例子展示的是即使在‘,’前后有空格,一样可以把字符串分开。
        
          最后简单写一下RegExp对象的方法。一共有两个两个,一个是exec(),这个方法与String对象的match相似。只是对象和参数换一下位。第二个是test()组要是测试看是否有符合的,有就返回true。

                var pattern=/java/g;
                var text="Javascript is more fun than Java!";
                var result;
                while((result=pattern.exec(text))!=null){
                         alert("Matched'"+result[0]+"'"+" at position "+result.index+"; next search begins at
"+pattern.lastIndex);
                   }

                var pattern=/java/i;
                pattern.test("JavaScript");   //true
     


        

              

    

     
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值