【问题标题】:How standardize all youtube links from a text file?如何标准化文本文件中的所有 youtube 链接?
【发布时间】: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


    【解决方案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' 字符连接?
    猜你喜欢
    • 2021-08-17
    • 2022-08-02
    • 2019-02-26
    • 2012-05-25
    • 2023-03-23
    • 2014-10-17
    • 2011-02-18
    • 1970-01-01
    • 2019-09-15
    相关资源
    最近更新 更多