javascript - 来自 url 的 youtube 视频 ID

标签 javascript jquery regex

<分区>

我已经从其他 stackoverflow 页面获得了这些代码来更正 youtube 链接,但它们不适用于我的 url:

https://www.youtube.com/watch?v=r2dRQHJ-aAk

代码:

<script>
$('#videoURL').focusout(function() {
    var url = this.value;
    var videoid = url.match(/(?:https?:\/{2})?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)(?:\/watch\?v=|\/)([^\s&]+)/);
    if(videoid != null) {
      $('#videoURL').value('http://www.youtube.com/watch?v='+videoid[1]);
    } else { 
        console.log("The youtube url is not valid.");
    }
});

</script>

它总是返回:

The youtube url is not valid

最佳答案

你不需要正则表达式:

var videoid = url.split('v=')[1];
var ampersandPosition = videoid.indexOf('&');
if(ampersandPosition != -1) {
    videoid = video_id.substring(0, ampersandPosition);
}

如果你愿意,你可以使用它:

var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;

关于javascript - 来自 url 的 youtube 视频 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17890100/

相关文章:

javascript - 使用javascript从字符串html中读取span标签值

javascript - 如何防止文本超出 div?

java - 可选择使用 String.split(),在分隔符的最后一次出现处拆分字符串

php - 替换大括号内的所有空格

javascript - 使用浏览器窗口调整幻灯片背景大小

javascript - 为什么 Angular 将 URL 片段 #foo 重写为 #/foo 以及如何避免这种情况?

javascript - Angular JS : validating duplicate object key in table

javascript - 使用 jQuery 查找 td 和 div 之间的选定值

javascript - Angular 指令模板抛出错误

python - 正则表达式检查某些单词是否不在其他单词之前