Javascript格式数组与正则表达式youtube视频id
Javascript format array with regex youtube video ids
提前道歉,因为我知道这个问题有很多答案,但是我没有成功地实现任何给定的答案。话虽如此,我们还是切入正题吧。
我有一个表,其中包含用户输入youtube视频id的文本输入
在提交时,我的javascript将创建一个包含这些youtube视频id的数组
如果用户输入一个youtube url,数组将中断
快速解决
如果有人可以帮助我得到正则表达式验证工作,所以用户将被正确提醒,并纠正他们的输入,这将是一个很好的开始
理想溶液
我不喜欢提醒用户,让他们改变他们输入的东西,因为它的糟糕的用户体验,所以如果有人觉得今天特别有帮助,可以告诉我如何采取他们输入的东西,剥离url位,只推youtube视频id到数组,这将是超级美妙的:)
示例:如果用户输入
["https://www.youtube.com/watch?v=K1CScQOj1dA", "https://youtu.be/wIJ1sFrgMds", "IISzG-sPUuo"]
代码将格式化它们的输入,最终的userSongs
数组将是:["K1CScQOj1dA", "wIJ1sFrgMds", "IISzG-sPUuo"]
这是我的小提琴http://jsfiddle.net/1qLr9n2j/
正如您所看到的,当两个输入是无效条目
您可以使用以下方式进行匹配:
.*?(['w-]+)$
用$1
代替
看到演示
JS代码:
var rx = /.*?(['w-]+)$/;
for (var i = 0; i < userSongs.length; i++) {
userSongs[i] = userSongs[i].replace(rx, '$1');
}
alert(userSongs);
这是我对理想解的破解
var re = new RegExp("youtu(?:'.be|be'.com)/(?:.*v(?:/|=)|(?:.*/)?)([a-zA-Z0-9-_]+)");
$('.song-input').each(function () {
var val = $(this).val()
if (val) {
var matches = val.match(re);
$(this).val(matches[1]);
}
});
我从James Poulson对你链接到的问题的回答中获取了正则表达式。
相关文章:
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 如何用低音量自动启动Youtube视频(iframe)
- 使用HTML5播放器时使用Javascript更改Youtube视频
- 有没有办法在dailymotion播放器的新测试版中播放youtube视频
- 在Android Kitkat上模拟鼠标点击Youtube视频
- 我们如何在dailymotion播放器的新测试版中播放youtube视频
- Lightbox关闭时停止播放Youtube视频
- 放大弹出生成“;找不到文件”;YouTube视频的错误
- 如何获取youtube视频的缩略图
- 从我的频道中提取最后3个youtube视频
- 你如何在youtube.com上获得youtube视频的状态
- 尝试制作youtube视频的缩略图,并在单击时将其放大
- 如何在Android WebView中嵌入Youtube视频
- jQuery:在for循环中运行youtube视频,播放最后一个视频
- 如何使用javascript在嵌入式youtube视频上创建可点击的时间戳链接
- 如何使用javascript(或jQuery)将youtube视频添加到iframe(基于web的RTE)
- 滚动时播放youtube视频
- youtube视频的正则表达式匹配模式可以以非贪婪的方式完成吗
- 允许我在用户操作后隐藏YouTube视频吗
- 改变嵌入式YouTube视频的方面配比