Android / Java:检查 url 是不是有效 youtube url

     2023-02-24     285

关键词:

【中文标题】Android / Java:检查 url 是不是有效 youtube url【英文标题】:Android / Java: Check if url is valid youtube urlAndroid / Java:检查 url 是否有效 youtube url 【发布时间】:2014-07-24 17:12:37 【问题描述】:

我想检查一个 url 是否是有效的 youtube url,以便我可以显示在视图中,否则我将隐藏视图。

Java 中是否有任何正则表达式可以帮助我检查 url 是否有效。目前我正在使用这个正则表达式,但我想这不是我想要的:

String youTubeURl = "https://www.youtube.com/watch?v=Btr8uOU0BkI";
String pattern = "https?:\\/\\/(?:[0-9A-Z-]+\\.)?(?:youtu\\.be\\/|youtube\\.com\\S*[^\\w\\-\\s])([\\w\\-]11)(?=[^\\w\\-]|$)(?![?=&+%\\w]*(?:['\"][^<>]*>|<\\/a>))[?=&+%\\w]*";
 if (!youTubeURl.isEmpty() && youTubeURl.matches(pattern)) 
              /// Valid youtube URL
  
 else
   // Not Valid youtube URL

【问题讨论】:

尝试与 url 建立 http-connection 并检查响应代码 【参考方案1】:

这对我有用。

public static boolean isYoutubeUrl(String youTubeURl)

       boolean success;
       String pattern = "^(http(s)?:\\/\\/)?((w)3.)?youtu(be|.be)?(\\.com)?\\/.+";
       if (!youTubeURl.isEmpty() && youTubeURl.matches(pattern))
       
           success = true;
       
       else
       
           // Not Valid youtube URL
           success = false;
       
       return success;
  

如果要检索 Youtube videoId,可以使用以下函数。

public static String getVideoIdFromYoutubeUrl(String youtubeUrl)

       /*
           Possibile Youtube urls.
           http://www.youtube.com/watch?v=WK0YhfKqdaI
           http://www.youtube.com/embed/WK0YhfKqdaI
           http://www.youtube.com/v/WK0YhfKqdaI
           http://www.youtube-nocookie.com/v/WK0YhfKqdaI?version=3&hl=en_US&rel=0
           http://www.youtube.com/watch?v=WK0YhfKqdaI
           http://www.youtube.com/watch?feature=player_embedded&v=WK0YhfKqdaI
           http://www.youtube.com/e/WK0YhfKqdaI
           http://youtu.be/WK0YhfKqdaI
        */
       String pattern = "(?<=watch\\?v=|/videos/|embed\\/|youtu.be\\/|\\/v\\/|\\/e\\/|watch\\?v%3D|watch\\?feature=player_embedded&v=|%2Fvideos%2F|embed%\u200C\u200B2F|youtu.be%2F|%2Fv%2F)[^#\\&\\?\\n]*";
       Pattern compiledPattern = Pattern.compile(pattern);
       //url is youtube url for which you want to extract the id.
       Matcher matcher = compiledPattern.matcher(youtubeUrl);
       if (matcher.find()) 
           return matcher.group();
       
       return null;

【讨论】:

【参考方案2】:

为了实现你想要的,你应该像这样使用这个正则表达式:

private static final Pattern youtubePattern = Pattern.compile("^(http(s)?:\/\/)?((w)3.)?youtu(be|.be)?(\.com)?\/.+");
private boolean isValid = youtubePattern.matcher(youtubeUrl).matches();

其中youtubeUrl 可以是以下列表的任何 URL:

http://youtu.be/t-ZRX8984sc http://youtube.com/watch?v=iwGFalTRHDA http://www.youtube.com/watch?v=t-ZRX8984sc http://www.youtube.com/watch?v=iwGFalTRHDA&feature=related http://www.youtube.com/embed/watch?feature=player_embedded&v=r5nB9u4jjy4 https://www.youtube.com/channel/UCDZkgJZDyUnqwB070OyP72g youtube.com/n17B_uFF4cA youtube.com/iwGFalTRHDA http://youtu.be/n17B_uFF4cA https://youtube.com/iwGFalTRHDA https://youtube.com/channel/UCDZkgJZDyUnqwB070OyP72g

此正则表达式可以匹配与 youtube.com 相关的任何类型的 URL

【讨论】:

部分网址已失效! 是的,但是目的是一样的,就是验证URL是否来自Youtube @RobertoOsorioMcNulty 字符串中的正则表达式应该是 "^(http(s)?:\\/\\/)?((w)3.)?youtu(be|.be) ?(\\.com)?\\/.+"【参考方案3】:

这不会检查 URL 是否有效。它仅在您的 URL 中检查字符串“youtube”和“youtu.be”。以下是正则表达式

String yourUrl = "https://youtu.be/Xh0-x1RFEOY";
yourUrl.matches(".*(youtube|youtu.be).*")

" .* " 在开头和结尾表示您正在检查的表达式(youtube & youtu.be) 的左右两侧可能有任何内容。

注意:这与网址的有效性无关

【讨论】:

如果您的网址中有“youtube”或“youtu.be”字样,这将不起作用。例如,指向此帖子的链接也返回 true【参考方案4】:

使用android.webkit.URLUtil.isValidUrl(java.lang.String) 来检查 url 是否有效。然后您可以检查 url 是否包含 Youtube 字符串。

喜欢

private boolean isValidUrl(String url) 

    if (url == null) 
        return false;
    
    if (URLUtil.isValidUrl(url)) 
        // Check host of url if youtube exists
        Uri uri = Uri.parse(url);
        if ("www.youtube.com".equals(uri.getHost())) 
            return true;
        
        // Other way You can check into url also like 
        //if (url.startsWith("https://www.youtube.com/")) 
            //return true;
        //
    
    // In other any case
    return false;

【讨论】:

在这种情况下“youtu.be/zuf8A0udHrs”呢?我无法从 url 获取 YouTube 视频 ID。 这不是一个有效的 youtube 网址。【参考方案5】:

你应该使用

Patterns.WEB_URL.matcher(youTubeURl).matches()

如果 URL 有效则返回 True,如果 URL 无效则返回 false。

【讨论】:

检查url是不是被缓存webview android

】检查url是不是被缓存webviewandroid【英文标题】:Checkifurliscachedwebviewandroid检查url是否被缓存webviewandroid【发布时间】:2015-12-1404:19:39【问题描述】:我使用webview来加载html页面和url。我只想在互联网可用或url内容被web视图缓存的... 查看详情

如何检查 URL 在 Android 中是不是有效

】如何检查URL在Android中是不是有效【英文标题】:HowtocheckifURLisvalidinAndroid如何检查URL在Android中是否有效【发布时间】:2011-06-2118:18:10【问题描述】:是否有避免导致应用程序崩溃的“主机未解析”错误的好方法?某种方式尝试... 查看详情

Android 使用其 URL 检查文件是不是存在于远程服务器中

】Android使用其URL检查文件是不是存在于远程服务器中【英文标题】:AndroidchecksiffileexistsinaremoteserverusingitsURLAndroid使用其URL检查文件是否存在于远程服务器中【发布时间】:2014-06-3015:26:23【问题描述】:我希望我的Android程序使用... 查看详情

在 Cordova 中检查是不是在 iOS 或 Android 上注册了 URL 方案

】在Cordova中检查是不是在iOS或Android上注册了URL方案【英文标题】:CheckifaURLschemeisregisteredoniOSorAndroidinCordova在Cordova中检查是否在iOS或Android上注册了URL方案【发布时间】:2014-05-2014:48:36【问题描述】:我想检查一个特定的应用程... 查看详情

如何检查 URL 是不是存在或使用 Java 返回 404?

】如何检查URL是不是存在或使用Java返回404?【英文标题】:HowtocheckifaURLexistsorreturns404withJava?如何检查URL是否存在或使用Java返回404?【发布时间】:2010-11-2513:53:43【问题描述】:StringurlString="http://www.nbc.com/Heroes/novels/downloads/Heroes... 查看详情

在 ServletRequests 上使用 java Filter 时如何检查 url 是不是具有有效映射

】在ServletRequests上使用javaFilter时如何检查url是不是具有有效映射【英文标题】:HowtocheckifurlhasvalidmappingwhenusingjavaFilteronServletRequests在ServletRequests上使用javaFilter时如何检查url是否具有有效映射【发布时间】:2016-05-1912:03:57【问题... 查看详情

检查端口是不是在 Android/Java 上打开

】检查端口是不是在Android/Java上打开【英文标题】:CheckifPortisopenonAndroid/Java检查端口是否在Android/Java上打开【发布时间】:2013-08-1912:15:06【问题描述】:我想检查一个端口是否打开,或者是否有服务器在其上运行。我已经尝试... 查看详情

如何在 Java / Android 中检查数字是不是为“NaN”? [复制]

】如何在Java/Android中检查数字是不是为“NaN”?[复制]【英文标题】:Howtocheckwhetheranumberisa"NaN"inJava/Android?[duplicate]如何在Java/Android中检查数字是否为“NaN”?[复制]【发布时间】:2013-08-2206:18:19【问题描述】:请看下面的... 查看详情

Android Java 检查联系人是不是有名字

】AndroidJava检查联系人是不是有名字【英文标题】:AndroidJavaCheckifContacthasnameornotAndroidJava检查联系人是否有名字【发布时间】:2021-04-2209:54:33【问题描述】:我正在尝试通过ContentResolver查询获取电话联系方式。我可以获取联系人... 查看详情

检查是不是安装了应用程序 - Android

】检查是不是安装了应用程序-Android【英文标题】:Checkifapplicationisinstalled-Android检查是否安装了应用程序-Android【发布时间】:2013-09-1603:03:58【问题描述】:我正在尝试从GooglePlay安装应用程序。我可以理解,在打开GooglePlay商店UR... 查看详情

检查 URL 是不是存在

】检查URL是不是存在【英文标题】:CheckingifaURLexistsornot检查URL是否存在【发布时间】:2011-05-0920:05:14【问题描述】:我需要检查一个URL是否存在。我想为此编写一个servlet,即检查URL是否存在。如果输入的URL不存在,那么它应该... 查看详情

如何使用 Android Webview 检查链接是不是脱机或损坏?

】如何使用AndroidWebview检查链接是不是脱机或损坏?【英文标题】:HowtocheckifLinkisofflineorbrokenwithAndroidWebview?如何使用AndroidWebview检查链接是否脱机或损坏?【发布时间】:2016-01-2513:26:41【问题描述】:我使用AndroidWebview来加载这... 查看详情

检查url图片是不是存在

】检查url图片是不是存在【英文标题】:Checkifurlimageexist检查url图片是否存在【发布时间】:2015-04-3008:39:03【问题描述】:我正在尝试使用if语句检查url图像是否存在。但是,当尝试通过错误的图像url对其进行测试时,它会不断... 查看详情

如何检查 URL 是不是包含某些单词?

】如何检查URL是不是包含某些单词?【英文标题】:HowtocheckifURLcontainscertainwords?如何检查URL是否包含某些单词?【发布时间】:2019-03-2301:32:32【问题描述】:如果当前URL包含某些单词,我想显示自定义内容。到目前为止,如果URL... 查看详情

如何检查图片是不是存在于url

】如何检查图片是不是存在于url【英文标题】:Howtocheckifimageexistsaturl如何检查图片是否存在于url【发布时间】:2014-06-1211:57:19【问题描述】:我正在尝试加载一组直接链接到图像的url。问题是某些图像不存在,我想在尝试加载... 查看详情

检查当前 URL 是不是包含哈希 [重复]

】检查当前URL是不是包含哈希[重复]【英文标题】:CheckifcurrentURLcontainshash[duplicate]检查当前URL是否包含哈希[重复]【发布时间】:2018-02-1807:34:56【问题描述】:使用Javascript如何检查当前URL是否包含哈希?在测试页面中我想添加一... 查看详情

如何检查元素是不是可见并使用 JQuery 检查 URL 是不是包含字符串?

】如何检查元素是不是可见并使用JQuery检查URL是不是包含字符串?【英文标题】:HowdoIcheckifanelementisvisibleandcheckiftheURLcontainsastringusingJQuery?如何检查元素是否可见并使用JQuery检查URL是否包含字符串?【发布时间】:2017-06-1210:35:25... 查看详情

如何通过 PHP 检查 URL 是不是存在?

】如何通过PHP检查URL是不是存在?【英文标题】:HowcanIcheckifaURLexistsviaPHP?如何通过PHP检查URL是否存在?【发布时间】:2011-01-1720:00:17【问题描述】:如何在PHP中检查URL是否存在(不是404)?【问题讨论】:Howcanonechecktoseeifaremotef... 查看详情