如何快速检查 url 字符串是不是包含一个单词?

Posted

技术标签:

【中文标题】如何快速检查 url 字符串是不是包含一个单词?【英文标题】:How do i check if url string contains a word in swift?如何快速检查 url 字符串是否包含一个单词? 【发布时间】:2017-05-21 11:43:44 【问题描述】:

如果 URL 不包含我想要的字词,我正在尝试将 Web 视图转发到本地文件我尝试了很多 contains 并且 rangeofstrings 不起作用对我来说。

  if let url = "http://facebook.com/url/url"

        if url.contains("facebook.com") || url.contains("nocontent") || url.contains("nointernet") || url.contains("paypal.com")
            //Doing something here
            return true
        else

            let htmlFile = Bundle.main.path(forResource: "nocontent", ofType: "html")
            let html = try? String(contentsOfFile: htmlFile!, encoding: String.Encoding.utf8)
            webView.loadHTMLString(html!, baseURL: nil)
        
    

【问题讨论】:

只是将 url 转换为字符串并使用代码作为 var string = "hello Swift" if string.range(of:"Swift") != nil println("exists") // 替代:不区分大小写 if string.lowercased().range(of:"swift") != nil println("exists") @Gagan_ios 我试过了不起作用请正确阅读问题 试试这个..有时“包含”不起作用。将您的网址转换为字符串并检查第一条评论中提到的范围。 @Gagan_iOS 这是一个字符串,请阅读问题 return URL(string: "http://facebook.com/url/url")?.absoluteString.contains("facebook.com") == true 或使用主机属性return URL(string: "http://facebook.com/url/url")?.host?.contains("facebook.com") == true 【参考方案1】:

这应该可以完成工作:

if let url = URL(string: "http://facebook.com/url/url") 

    if url.absoluteString.range(of: "facebook.com") != nil 

        return true
    

    return false

【讨论】:

提示:你不需要括号。 @BoilingLime "facebook.com/url/url" 将被替换为 NSURL 别担心 @O-mkar 好的,使用URL 代替NSURL。但是URL 也不是NSURL 实现range(of: String)。你必须解开 absoluteString 如下:let urlString = URL(string: "http://facebook.com/url/url")?.absoluteString 如果只有一个条件,甚至“更简单”:只需 return url.absoluteString.range(of: "facebook.com") != nilreturn url.absoluteString.range(of: "facebook.com") == nil,具体取决于您需要的逻辑。 ;) return URL(string: "http://facebook.com/url/url")?.absoluteString.contains("facebook.com") == true【参考方案2】:

也适合我:

if url.absoluteString.contains("facebook.com") 
    // do something here

【讨论】:

【参考方案3】:

这对我有用

guard url.path.contains("facebook.com")  else  return nil 
 //do what you want

【讨论】:

以上是关于如何快速检查 url 字符串是不是包含一个单词?的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Javascript Regex 检查 URL 是不是包含一个单词并且不包含另一个单词

如何检查句子是不是包含特定单词?

如何使用 PHP 检查一个单词是不是包含在另一个字符串中?

使用 Java Regex,如何检查字符串是不是包含集合中的任何单词?