【问题标题】:Regex for youtubeyoutube 的正则表达式
【发布时间】:2012-09-04 13:05:40
【问题描述】:

我正在使用此正则表达式将 youtube 链接转换为嵌入式代码:

str.replace(/(?:http:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?)?(?:.+)v=(.+)/g, '<iframe width="420" height="345" src="http://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>');

但是当 youtube 链接的参数超过 v 参数时,它就不起作用了,比如

http://www.youtube.com/watch?v=iXVe-efsYWw&feature=g-feat

谁能帮我更改正则表达式以切断任何附加参数?

【问题讨论】:

标签: regex youtube hyperlink


【解决方案1】:

我为此做的最好的正则表达式是这个:

~^.*(?:youtu\.be\/|youtube\.com\/(?:[^\?]*\?(?:.*&)?v=|(?:embed|v|user)\/))([^\?&"\'>]{11}).*$~si

将其替换为第 1 组。(\1 或 $1)

希望对您有所帮助。为我得到的每个 youtube URL 工作。它对任何人都不起作用,让我知道,我可以做得更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2015-02-01
    相关资源
    最近更新 更多