为什么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);