JQUERY:从字符串中获取所有youtube链接

时间:2017-04-24 04:07:35

标签: jquery regex youtube web

我想在字符串中获得一个youtube链接 示例

  

“你好,如何检查https://www.youtube.com/watch?v=r_p8ZXIRFJI”;

然后我得到链接

  

https://www.youtube.com/watch?v=r_p8ZXIRFJI

我收到链接后,我想从字符串

中删除该链接

适用于所有YouTube广告网址

2 个答案:

答案 0 :(得分:0)

我们正在使用regular expression从字符串中提取youtube链接。

正则表达式: (?:https?:\/\/)(?:www\.)?(?:youtube|youtu)\.(?:be|com)\/[^\s]+

Try Regex demo here

  

注意: Youtube链接也可以是这种格式https://youtu.be/_3tVL-ZAc4k

     

示例字符串: 您好如何查看https://www.youtube.com/watch?v=r_p8ZXIRFJI YouTube链接可以是此类https://youtu.be/_3tVL-ZAc4k

Try this code snippet here

<?php

$string="hi how are you check it https://www.youtube.com/watch?v=r_p8ZXIRFJI youtube link can be of this type https://youtu.be/_3tVL-ZAc4k";
preg_match_all("/(?:https?:\/\/)(?:www\.)?(?:youtube|youtu)\.(?:be|com)\/[^\s]+/", $string,$matches);
print_r($matches);

<强>输出:

Array
(
    [0] => Array
        (
            [0] => https://www.youtube.com/watch?v=r_p8ZXIRFJI
            [1] => https://youtu.be/_3tVL-ZAc4k
        )

)

答案 1 :(得分:0)

使用@ampudia回答,来自Extract URL's from a string using PHP您可以获取网址并解析它,

<?php
    $pattern='#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#';
    $str="hi how are you check it https://www.youtube.com/watch?v=r_p8ZXIRFJI";
    preg_match_all($pattern, $str, $match);
    // if there are multiple urls then use loop here
    print_r($match[0]);
    echo '<br/>';
    // otherwise just use 
    echo isset($match[0][0]) ? $match[0][0] : 'No url found';
    // and to replace string use
    echo '<br/>';
    echo strpos($match[0][0],'.youtube.') ? str_replace($match[0][0],'',$str) : 'No youtube url'; // let $match[0][0] is defined and not null
?>

<强> PhpFiddle