区分 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