3

我的代码是:

var st="man myfile=l/p/nm.mp3 yourfile=/o/mj/nnc.mp3 ou p";
var patt=/myfile.[\W|\w]*.mp3\s/;
var s=patt.exec(st);
var s2=s.slice(3,4);
alert(s2);

但是 slice() 什么也没给我,而 substr() 方法给了我一个错误:

Object doesn't support this method

为什么?

4

2 回答 2

1

法布里西奥是对的。您的变量s是 RegExp 对象。要访问子字符串,您需要执行以下操作:

var s2 = s[0].substr(3,4);

jsFiddle 在这里

于 2013-02-16T15:36:34.457 回答
0

slice: slice() 方法将数组中的选定元素作为新的数组对象返回。

substring: substring() 方法从字符串中提取两个指定索引之间的字符,并返回新的子字符串。

var st="man myfile=l/p/nm.mp3 yourfile=/o/mj/nnc.mp3 ou p";
var patt=/myfile.[\W|\w]*.mp3\s/;
var s=patt.exec(st); 

s现在是包含以下内容的数组:["myfile=l/p/nm.mp3 yourfile=/o/mj/nnc.mp3 "]

var s2=s.slice(3,4);

元素3不存在,所以它返回null

关于substring它不能在数组上使用:)所以你必须做这样的事情:

var s2=s[0].substring(3,4);
于 2013-02-16T15:38:32.670 回答