2014-03-31 45 views
0

我在StackOverflow和網絡上看到過許多YouTube正則表達式,但未能找到(或編輯)我需要的。 我需要的是驗證用戶輸入有效的YouTube網址,這應該也包含Youtube頁面/頻道。 所以這是沒有多少關於YouTube直接視頻網址,而是要驗證通道,是這樣的:ASP.NET Youtube頻道正則表達式

https://www.youtube.com/user/myyoutubeusername 

這將是很好,如果它可以被用來驗證甚至直接鏈接到視頻,youtu.be短網址格式和其他Youtube鏈接。

我需要在ASP.NET的正則表達式驗證控件,但我想這是次要的。

在此先感謝。

+0

啊許多需求,但你有什麼* *嘗試*? – tenub

+0

我在這裏嘗試了很多正則表達式,例如: /^.*(youtu.be \/| v \/| u \/\ w \/| embed \/| watch \?v = | \&v =)( [^#\&\?] *)。* /並嘗試添加| user \/|在它和類似的東西 – Manight

回答

0

取決於你真正想要的字符允許「用戶」和「通道」,而是一個快速的解決方案可能是:

https?:\/\/(?:www\.)?youtube\.com\/[\w-]+\/[\w-]+ 

在這種情況下,它允許字符[a-zA-Z_-]。 「http」協議匹配以及「https」和「www」。是可選的。

+0

我不知道Youtube允許用戶名/頻道名稱。我想a-zA-Z_-應該是好的......我不知道他們是否允許點或其他字符...這可能是一個很好的簡單解決方案,用於單個通道的範圍...需要來測試它。更廣泛的東西會很棒。例如,因爲我不需要特定的匹配來執行ID提取或這樣的...我怎麼能有youtube.com(或youtu.be)後跟任何URL有效的字符/組合?像一個通用的網站正則表達式,它檢查youtube.com(youtu.be)嗎? – Manight

+0

使用或:'youtube \ .com | youtu \ .be' – tenub

0

要想從YouTube網址使用的頻道名稱或頻道ID:

(?:https|http)\:\/\/(?:[\w]+\.)?youtube\.com\/(?:c\/|channel\/|user\/)?([a-zA-Z0-9\-]{1,}) 

這適用於網址,如:

https://www.youtube.com/user/channelblabla 
https://www.youtube.com/channel/channelblabla 
https://www.youtube.com/c/channelblabla 
https://www.youtube.com/channelblabla 

如果您正在尋找渠道ID的具體做法是:頻道ID的開始與'UC'。我不知道任何其他方式來識別頻道ID與頻道名稱。