jQuery,正则表达式,生成动态URL

3

我需要正则表达式的帮助,因为对我来说会花费很多时间,但对你而言只需要几分钟 :)

我有一个YouTube链接:

http://www.youtube.com/watch?v=9_Hd8hXhg7o&feature=youtube_gdata 

我无法将此内容添加到嵌入对象中,对于嵌入对象,我必须更改此URL:

http://www.youtube.com/v/9_Hd8hXhg7o&hl=en_US&fs=1&

这意味着我想在某个变量中添加YouTube代码,类似于这样的内容。
var url = after regexp "9_Hd8hXhg7o";

"http://www.youtube.com/v/" + url +"&hl=en_US&fs=1&";

感谢您的选择!
1个回答

4
这应该可以做到:
var url = "http://www.youtube.com/watch?v=9_Hd8hXhg7o&feature=youtube_gdata";

var id = url.match(/(\?|&)v=(.*?)(&|$)/)[2];

var new_url = "http://www.youtube.com/v/" + id+"&hl=en_US&fs=1&";

这应该适用于你提供的几乎所有格式。此代码段查找?v=&v=以及该符号后面的任何字符,直到出现一个&符号或行尾,因此还可以从这些位置找到ID:

http://www.youtube.com/watch?v=9_Hd8hXhg7o
http://www.youtube.com/watch?feature=youtube_gdata&v=9_Hd8hXhg7o
http://www.youtube.com/watch?fs=1&v=9_Hd8hXhg7o&feature=youtube_gdata&

1
不必分别检查“&”和“?” ,您可能只需使用\Wv=(.+?)(&|$)。事实上,您可以通过使用一些字符类使其更加容易:[?&]v=(\w+) - friedo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接