JavaScript中match函数方法是使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。使用方法:stringObj.match(rgExp)其中stringObj是必选项。对其进行查找的 String 对象或字符串文字。
rgExp是必选项。为包含正则表达式模式和可用标志的正则表达式对象。也可以是包含正则表达式模式和可用标志的变量名或字符串文字。如果JavaScript中match函数方法没有找到匹配,返回 null。如果找到匹配返回一个数组并且更新全局 RegExp 对象的属性以反映匹配结果。JavaScript中match函数方法返回的数组有三个属性:input、index和lastIndex。Input 属性包含整个的被查找字符串。Index 属性包含了在整个被查找字符串中匹配的子字符串的位置。LastIndex 属性包含了最后一次匹配中最后一个字符的下一个位置。如果没有设置全局标志 (g),数组的0元素包含整个匹配,而第 1 到 n 元素包含了匹配中曾出现过的任一个子匹配。这相当于没有设置全局标志的 exec 方法。如果设置了全局标志,元素0到n中包含所有匹配。

解决方案 »

  1.   

    match(/\.(\w+)$/)[1] 
    没见过,根据楼上狼兄的手册理解,可能是返回第一个子匹配,即(\w+)里内容
    否则没这样的写法match可能返回数组
      

  2.   

    这个应该是javascript里的一个正则
    <SCRIPT LANGUAGE="JavaScript">
      <!--
      var str = "asdfbsd.com";
    alert(str.match(/\.(\w+)$/)[0] );
    alert(str.match(/\.(\w+)$/)[1] );
      //-->
      </SCRIPT>
    运行一下就明白了
      

  3.   

    这是 js里的match返回一个数组, 数组的第一个下标是匹配到的值, 第二个下标是第一个子匹配第三个下票是第二个子匹配, 依次类推<script>
      var str = 'abcd.jpg';
      alert(str.match(/\.(\w+)$/)[1]); // jpg  var arr = str.match(/(.+)\.(\w+)$/);
    alert(arr[0]) // abcd.jpg
    alert(arr[1]) // abcd
    alert(arr[2]) // jpg
    </script>