javascript子串提取

时间:2012-11-07 14:03:25

标签: php javascript string

我有一个javascript脚本,其中有行,例如:

http://www.youtube.com/watch?v=FOeLP1WdjFc&feature=related

我想提取“watch?=”之后和“& feature”之前的子字符串, 它的模式是:

1)它是在“看?=”

之后

2)它在“& feature”之前,

3)它是一个11个字符的字符串

我知道其他脚本可能很简单,但现在我只需要javascript, 如果真的不可能,那么php是可以接受的, 怎么实现这个? 谢谢!

4 个答案:

答案 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