为什么javascript中的slice()和substr()方法不';你不能处理正则表达式吗?

为什么javascript中的slice()和substr()方法不';你不能处理正则表达式吗?,javascript,expression,slice,substr,Javascript,Expression,Slice,Substr,我的代码是: 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()方法给我一个错误: 对象不支持此方法 为什么?法布里西奥是对的。变量s是一个RegExp对象。要访问子字符串,您需要执行以下操作: var

我的代码是:

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()方法给我一个错误:

对象不支持此方法


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

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

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

子字符串
: 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”]

元素
3
不存在,因此它返回
null

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

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

.exec
返回一个对象。你的预期产出是什么?@Fabricio Matté耶
.exec()
method我的预期输出是一个字符串。如何转换它?正如@hooner回答的那样,索引
0
保持完全匹配,因此
s[0]
应该这样做。slice,substr是数组的方法,而不是字符串,请在这里阅读有关这些方法的更多信息,以便使用indexOf()操纵字符串;
var s2=s[0].substring(3,4);