My complex solution for Swift 5.x
ViewController:
private func loadUrl(_ urlString: String) {
    guard let url = URL(string: urlString) else { return }
    let request = URLRequest(url: url)
    webView.load(request)
}
UISearchBarDelegate:
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
    guard let text = searchBar.text else { return }
    
    if !text.isUrl() {
        let finalUrl = String(format: "%@%@", "https://www.google.com/search?q=", text)
        loadUrl(finalUrl)
        return
    }
    
    if text.starts(with: "https://") || text.starts(with: "http://") {
        loadUrl(text)
        return
    }
    let finalUrl = String(format: "%@%@", "https://", text)
    loadUrl(finalUrl)
}
String extension:
extension String {
    func isUrl() -> Bool {
        guard !contains("..") else { return false }
        
        let regex = "((http|https)://)?([(w|W)]{3}+\\.)?+(.)+\\.+[A-Za-z]{2,3}+(\\.)?+(/(.)*)?"
        let urlTest = NSPredicate(format:"SELF MATCHES %@", regex)
        
        return urlTest.evaluate(with: trimmingCharacters(in: .whitespaces))
    }
}