我有一个 javascript 脚本,其中有行,一个例子是:
http://www.youtube.com/watch?v=FOeLP1WdjFc&feature=related
我想提取“watch?=”之后和“&feature”之前的子字符串,它的模式是:
1)它在“手表?=”之后
2) 它在“&feature”之前,
3) 它是一个 11 个字符的字符串
我知道其他脚本可能很简单,但现在我只需要javascript,如果真的不可能,那么php是可以接受的,如何实现呢?谢谢!
我有一个 javascript 脚本,其中有行,一个例子是:
http://www.youtube.com/watch?v=FOeLP1WdjFc&feature=related
我想提取“watch?=”之后和“&feature”之前的子字符串,它的模式是:
1)它在“手表?=”之后
2) 它在“&feature”之前,
3) 它是一个 11 个字符的字符串
我知道其他脚本可能很简单,但现在我只需要javascript,如果真的不可能,那么php是可以接受的,如何实现呢?谢谢!
试试这个(工作示例):
var s = "http://www.youtube.com/watch?v=FOeLP1WdjFc&feature=related";
var left = "watch?v=";
var right = "&feature";
var parsed = s.substring(s.indexOf(left) + left.length, s.indexOf(right));
console.log(parsed);
这是一个非常粗略、快速的答案,因此我建议您研究正则表达式以获得更具可扩展性的方法。
您可以使用正则表达式来制定您的要求:
var res = url.match(/watch?=(.{11})&feature/);
if (res != null)
return res[1];
并不是说这会起作用(提取v参数的内容),但它会按照您的描述进行。
.indexOf()你可以使用 JavaScript和.substring()方法来实现你所需要的。
var index = url.indexOf('?v=') + 3;
alert(url.substring(index, index + 11));
请参阅此演示。
在 PHP 中,您可以使用标准函数parse_url()来解析 URL 并parse_str()解析查询字符串以提取单个 GET 参数,例如v.