添加http://www.如果不存在则在文本中

问题描述 投票:0回答:7

我如何知道某些文本包含“http://www”。我想在 Web 视图中显示域。域名写在TextView中,但不限制添加前缀。如果用户没有输入它,我必须在 webview 中添加并显示 URL。

android android-webview textview android-textattributes
7个回答
28
投票

你可以这样做

String url = textView.getText().toString();
if(!url.startsWith("www.")&& !url.startsWith("http://")){
  url = "www."+url;
}
if(!url.startsWith("http://")){
  url = "http://"+url;
}

您可以使用此url在WebView中显示内容

希望这能解决您的问题


5
投票

刚刚修改了@silwar 答案并添加了 https :

 if(!url.startsWith("www.")&& !url.startsWith("http://") && !url.startsWith("https://")){
        url = "www."+url;
    }
    if(!url.startsWith("http://") && !url.startsWith("https://")){
        url = "http://"+url;
    }

但请记住,有时

http://
会在android中创建安全异常,因此我们应该使用
https://
。因此,对于无风险的代码,我们必须像上次检查一样这样做 -

 if(!url.startsWith("http://") && !url.startsWith("https://")){
            url = "https://"+url;}

3
投票

检查域名格式是否正确并包含(或不包含)前缀的最有效方法是使用正则表达式。

查看 Java Pattern 以匹配 Android 中的正则表达式。这是值得的。


2
投票

按照 Sebastien 的要求,正则表达式是一个不错的选择。 您还可以从视图中获取文本,创建 URI 对象

Uri uri = Uri.create(view.getText().toString());

然后使用 uri.somemethod 您应该能够获得有关您想知道的网址的所有信息。 如果 uri 无法创建,您会生成错误消息,导致出现问题。


1
投票

我只需从 TextView 获取文本并通过startsWith() 解析它。 如果这是 false,只需将其添加到文本中并使用 setText() 重新分配它。

您可能还想检查其他表达方式,例如“www.”。所以仔细看看 contains()。


0
投票

2024 年最后 : 验证现代时代的网址(实际上它对我有用):

public static @NonNull String validateUrl(String url ) {

        if (url.startsWith("http://")) {
            url= url.replace("http://","https://" );
        }
        if(url.startsWith("https://")&& !url.startsWith("https://www.")){
            url = url.replace("https://","https://www.");
        }

        if(!url.startsWith("www.")&& !url.startsWith("https://")&&
        !url.startsWith("http://")&& !url.startsWith("http://www.")
                &&!url.startsWith("https://www.")
        ){
            url = "https://www."+url;
        }

        if(url.startsWith("www.")&& !url.startsWith("https://")&&
                !url.startsWith("http://")&& !url.startsWith("http://www.")
                &&!url.startsWith("https://www.")
        ){
            url = "https://www."+url.replace("www.", "");
        }
        return url;
    }

-2
投票

试试这个

String a = "http://";
webview.loadUrl(a + url.getText().toString());
© www.soinside.com 2019 - 2024. All rights reserved.