1

我正在寻找一种可以获取以下 URL 的方法:

http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=1m30s?someweirdthing
http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=90s&anotherweirdthing
http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=90

返回如下值:

1m30s
90s
90

这可以用一个正则表达式吗?

4

2 回答 2

3
youtube.com\S+#t=((\d+m)?(\d+[s]?)?)

找到捕获组 1 的值,它将返回

1m30s
90s
90

话虽如此,按照 Blender 的建议使用 Split() 可能会更好。

在 javascript 中,组匹配很简单

var youtubeString = "http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=1m30s?someweirdthing";
var myRegexp      = /youtube.com\S+#t=((\d+m)?(\d+[s]?)?)/g;
var match         = myRegexp.exec(youtubeString);
alert(match[1]);
于 2013-04-17T02:42:11.140 回答
1

我会使用.split()

> 'http://www.youtube.com/watch?v=Nlwa0ZWrO8g#t=1m30s'.split('#t=')[1]
"1m30s"

至于正则表达式,您可以使用:

/#t=([^&$?]+)/
于 2013-04-17T02:36:18.980 回答