【发布时间】:2017-02-17 01:57:17
【问题描述】:
Youtube 描述字符非常昂贵,因此我们正在尝试找到一种方法,将 e textarea 中的所有 youtube 链接条目替换为较短的条目。
Youtube 的短网址是“http://youtu.be/”+ [video id]。
我正在加载的文件包含所有类型的 youtube 链接,此脚本的结果应该是缩短文件中找到的所有 youtube 链接。
这是文件的示例:
Best Commercials Ever
10. T-Mobile Super Bowl 2016 Commercial:
https://www.youtube.com/watch?v=OUVFxBd8OCI&ab_channel=EpicExperiment
9. Butterfinger Super Bowl Commercial 2016:
https://www.youtube.com/watch?v=mXLWAAn7gEk
我的脚本应该查找此视频并返回:
Best Commercials Ever
10. T-Mobile Super Bowl 2016 Commercial: youtu.be/OUVFxBd8OCI
9. Butterfinger Super Bowl Commercial 2016: youtu.be/mXLWAAn7gEk
使用这个正则表达式,我几乎可以找到任何 youtube 链接,并通过提取视频 ID 将其转换为缩短链接:
var videoid = url.match(/(?:https?:\/{2})?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)(?:\/watch\?v=|\/)([^\s&]+)/);
if(videoid != null) {
return "http://youtu.be/" + videoid[1];
} else {
console.log("The youtube url is not valid.");
}
然而,这个函数只适用于一个简单的字符串,而不是一个多行的(txt文件)。 现在我需要在文本文件中运行这个函数并替换所有匹配项的东西......
提前感谢您的帮助!
【问题讨论】:
标签: javascript jquery regex