JavaScript正则表达式(四)字符串实例方法match

来源:互联网 发布:淘宝掌柜热卖在哪里 编辑:程序博客网 时间:2024/05/29 08:52

除了知道是否要被搜索的字符串中是否含有匹配的模式,知道模式所对应的片段的位置之外,作为开发人员,还需要额外知道更重要的信息。比如,匹配的次数(针对这个句子I have never be a real human.中ve,出现了两次),匹配片段的左端和右端分别是什么等等。因此,我们需要更加强大的方法,幸运的是,javascript提供了这些方法。

首先介绍的是,字符串实例方法match。

使用match方法,只需要遵循stringObjectInstance.match(正则表达式对象)即可。该方法将包含查找的结果作为数组返回。返回的数组在不同的浏览器下有不同的属性,在IE下,包含input,index和lastIndex属性。在chrome和Firefox下,包含input,index属性。

input、index和lastIndex。Input 属性包含整个的被查找字符串。Index 属性包含了在整个被查找字符串中匹配的子字符串的位置。lastIndex 属性包含了最后一次匹配中最后一个字符的下一个位置。切记lastIndex属性只在IE下有效果。

      考虑如下代码,其中a30是一个textarea的输入框元素:

function doMatch(){

                 var str = "i have never bea man.";

                 var reg = /ve/;

                

                 var ar = str.match(reg);

                 var txt =document.getElementById("a30");

                

                 txt.value = ("match method: \r\n");

                 for(var i in ar){

                      txt.value +=("ar["+i+"] is "+ar[i]+" \r\n");

                 }

           }

在chrome和Firefox下打印的结果是:

      match method :

ar[0] is ve

ar[index] is 4

ar[input] is i havenever be a man.

而在IE下,打印的结果是:

      match method :

ar[input] is i havenever be a man.

ar[index] is 4

ar[lastIndex] is 6 【这个是have的ve的后面那个空格的位置,ve是最后一次匹配】

ar[0]is ve
原创粉丝点击