美文网首页
正则表达式2

正则表达式2

作者: 程咸菜 | 来源:发表于2016-08-22 23:04 被阅读0次

    在前一节中了解了 test 方法和 exec 方法。这一节认识一下字符串的 str 方法。

    使用字符串的正则表达式方法

    除了 test() 和 exec() 方法, string 对象也提供了4个使用正则表达式的方法。
    具体见图


    具体的每一条我们一一验证
    1. match(pattern)
      match(pattern) 是返回 pattern 的字串或者 null 具体代码见下图

      var pattern=/xiancai/;
      var str='咸菜 is a breakfast,Xiancai is a name';
      alert( str.match(pattern));
      具体的 alert 是


      因为是没有 xiancai 这个字符所以返回 null。如果将上面的代码做出改变。

      var pattern=/xiancai/g;
      var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
      alert( str.match(pattern));


    上面的代码中加入了 g 全局匹配,这样就有数组 xiancai,xiancai 出现了 如果要看类型的话可以在代码中加入 typeof 来查看,打印的就会是 object。
    var pattern=/xiancai/g;      
    var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';             
    alert(typeof str.match(pattern));         
    

    从图可以看出来是 object 类型


    或者是用这样的代码将数组打印出来证明是数组。
    var pattern=/xiancai/g;      
    var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';     
    var a=str.match(pattern);   
    alert (a[1]);     
    
    1. replace(pattern,relacement)
      replace(pattern,relacement) 是用 relacement 将 pattern 替换掉。

      var pattern=/xiancai/g;
      var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
      alert(str.replace(pattern,'Xiancai'));//返回替换后的字符。


    这时候我开启了全局,会替换所有匹配的字符串。如果没有匹配全局则是替换第一个参数。
    1. 使用 search 来查找匹配的数组

      var pattern=/xiancai/g;
      var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
      alert(str.search(pattern));

    返回第一个匹配到的位置,这时候不会查找到第二个 xiancai
    如果找不到就返回 -1;具体有兴趣可以自己试试。

    1. split 拆分字符串作为数组

      var pattern=/xiancai/g;
      var str='咸菜 is a breakfast,xiancai is a name.xiancai is a name';
      alert(str.split(pattern)); //这里我们匹配了xiancai,我们看看会打印什么


    这时候就看到 1 方框和 2 方框里面是“,,”和“.,”说明把字符串拆分成了数组。

    相关文章

      网友评论

          本文标题:正则表达式2

          本文链接:https://www.haomeiwen.com/subject/rtmgsttx.html