区分 youTube URL 和嵌入式 MP4 的文件名?
Differentiate between youTube URLs and the file names of embedded MP4s?
我想在我的 init() 函数中检查视频是 YouTube URL 还是文件名。
这看起来合适还是我可能遗漏了某种极端情况?
function init(){
playerSource = Document.getElementById('vid').src;
if ( playerSource.includes("https://www.youtube") ){
//Call to function that begins setting up YT iFrame API
}
}
提前致谢!
您可以使用以下正则表达式验证 youtube URL。
regExp = /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/
Youtube 有不同的 url 形式,具体取决于您从哪里取材
正常Url
https://www.youtube.com/watch?v=12345678901
分享Url
https://youtu.be/12345678901
分享Url与开始时间
https://youtu.be/12345678901?t=6
手机浏览器url
https://m.youtube.com/watch?v=12345678901&list=RD12345678901&start_radio=1
长url
https://www.youtube.com/watch?v=12345678901&list=RD12345678901&start_radio=1&rv=smKgVuS
长 url 开始时间
https://www.youtube.com/watch?v=12345678901&list=RD12345678901&start_radio=1&rv=12345678901&t=38
您可以在下面查看这些 URL 验证
https://regex101.com/r/7a1lGH/1
我想在我的 init() 函数中检查视频是 YouTube URL 还是文件名。
这看起来合适还是我可能遗漏了某种极端情况?
function init(){
playerSource = Document.getElementById('vid').src;
if ( playerSource.includes("https://www.youtube") ){
//Call to function that begins setting up YT iFrame API
}
}
提前致谢!
您可以使用以下正则表达式验证 youtube URL。
regExp = /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/
Youtube 有不同的 url 形式,具体取决于您从哪里取材
正常Url
https://www.youtube.com/watch?v=12345678901
分享Url
https://youtu.be/12345678901
分享Url与开始时间
https://youtu.be/12345678901?t=6
手机浏览器url
https://m.youtube.com/watch?v=12345678901&list=RD12345678901&start_radio=1
长url
https://www.youtube.com/watch?v=12345678901&list=RD12345678901&start_radio=1&rv=smKgVuS
长 url 开始时间
https://www.youtube.com/watch?v=12345678901&list=RD12345678901&start_radio=1&rv=12345678901&t=38
您可以在下面查看这些 URL 验证 https://regex101.com/r/7a1lGH/1