正则表达式2

2016-08-22  本文已影响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 方框里面是“,,”和“.,”说明把字符串拆分成了数组。
上一篇 下一篇

猜你喜欢

热点阅读