如何快速检查 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") != nil
或 return 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 字符串是不是包含一个单词?的主要内容,如果未能解决你的问题,请参考以下文章