我有一个javascript脚本,其中有行,例如:
http://www.youtube.com/watch?v=FOeLP1WdjFc&feature=related
我想提取“watch?=”之后和“& feature”之前的子字符串, 它的模式是:
1)它是在“看?=”
之后2)它在“& feature”之前,
3)它是一个11个字符的字符串
我知道其他脚本可能很简单,但现在我只需要javascript, 如果真的不可能,那么php是可以接受的, 怎么实现这个? 谢谢!
答案 0 :(得分:2)
试试这个(working example):
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);
这是一个非常粗略,快速的答案,因此我建议您查看正则表达式以获得更具伸缩性的方法。
答案 1 :(得分:2)
您可以使用正则表达式来制定您的要求:
var res = url.match(/watch?=(.{11})&feature/);
if (res != null)
return res[1];
这不会起作用(提取v
参数的内容),但它完成了你所描述的内容。
答案 2 :(得分:1)
您可以使用JavaScript .indexOf()
和.substring()
方法实现所需。
var index = url.indexOf('?v=') + 3;
alert(url.substring(index, index + 11));
请参阅此DEMO。
答案 3 :(得分:1)
在PHP中,您可以使用标准函数parse_url()
来解析URL,使用parse_str()
来解析查询字符串以提取单个GET参数,例如v
。