如何标准化文本文件中的所有 youtube 链接?
Posted
技术标签:
【中文标题】如何标准化文本文件中的所有 youtube 链接?【英文标题】:How standardize all youtube links from a text file? 【发布时间】: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)?(?:w3\.)?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文件)。 现在我需要在文本文件中运行这个函数并替换所有匹配项的东西......
提前感谢您的帮助!
【问题讨论】:
【参考方案1】:如果您从 textarea 中读取它,您可以使用 '\n' 字符将其分成几行,如此处How to read line by line of a text area 所述,然后将您的代码用于每一行。
但是,如果您需要在 javascript 中处理实际文件,您可以使用 html5 File API(示例教程在这里https://www.html5rocks.com/en/tutorials/file/dndfiles/)
【讨论】:
感谢您的回复!我还不能解决它。我能够拆分和替换每个链接,但找不到加入(多行)变量并将其发送回 textarea 的方法,就像以前一样,但只是纠正了 youtube 链接。任何灯光都值得赞赏,干杯! 您是否尝试将这些字符串(行)彼此添加但通过 '\n' 字符连接?以上是关于如何标准化文本文件中的所有 youtube 链接?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用正则表达式在字符串中查找所有 YouTube 视频 ID?