2017-08-29 73 views
0

如何验证网址是否有效?如何验证网址有效

说我有这个网址:

http://www.example.com:80/dir/?query=test

问题:

我需要验证网址如下:

  1. 确保网址有效检查方案:该方案用于:HTTPHTTPS

  2. 删除端口号,如果它是在URL

  3. 返回一个绝对的URL字符串得到主机,获取路径如下

URL = http://host/absolutePath

实施例:

https://www.example.com/dir/?query=test

我试试这个:

var strURL = NSURL(string:"http://www.example.com:80/dir/?query=test") 

if(strURL?scheme == "http" && strURL?scheme == "https"){ 

// remove the Port No 
} else { 

} 

如何删除端口号和重建URL作为一个字符串?

回答

0

你可以做到这一点与URLComponents

func validate(url : String) -> String? { 
    guard var components = URLComponents(string: url), 
     (components.scheme == "http" || components.scheme == "https") else { return nil } 
    components.port = nil 
    return components.string 
} 

let strURL = "http://www.example.com:80/dir/?query=test" 
let url = validate(url: strURL) // "http://www.example.com/dir/?query=test" 
0

检查这一点,如果这有助于

func testUrl(string: String) -> String? { 
     var stringUrl: String? 
     if let url = URL(string: string){ 
      if url.scheme == "http" || url.scheme == "https"{ 
       stringUrl = url.absoluteString 
       if let port = url.port{ 
        stringUrl = stringUrl?.replacingOccurrences(of: ":\(port)", with: "") 
       } 
      } 
     } 
     return stringUrl 
    }