2013-04-17 23 views
1

我正在尋找一種方式,我可以得到一個URL像任何一個:正則表達式從YouTube URL返回起始時間(#T =)

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 

這是可能的一個單一的正則表達式?

回答

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

定位捕獲組1的值,它會返回

1m30s 
90s 
90 

那就是sai d,根據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]); 
1

我會用.split()

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

對於一個正則表達式,你可以使用:

/#t=([^&$?]+)/ 
+0

簡單見我的編輯給的網址,它不會與您的解決方案工作。 – Jake

+0

@Jake:看我的編輯。 – Blender