Add http://www. in the text if not Exist
Asked Answered
V

6

11

How can I know that some text contain "http://www." I want to show domain in Web View. Domain name is written in TextView but there is no restriction to add prefix. If user didn't enter it I have to add and display URL in webview.

Velamen answered 18/5, 2012 at 9:54 Comment(0)
C
28

You can do like this

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

You can use this url to display content in WebView

Hope this will solve your problem

Cropeared answered 18/5, 2012 at 10:6 Comment(5)
This approach is a bit simpler than using regex. Anyway, you should also handle the case where the user types www.domain.comBrok
Hey Sebastien,please check answer againCropeared
Hm, this approach is buggy (you may end up with URLs like www.http://www.domain.com). Anyway, I think the poster will adjust the code according to his needs.Brok
Hi Sebastian, please check improved answerCropeared
if(!byte_link.startsWith("www.") ){ if (!byte_link.startsWith("http")) { byte_link = "www." + byte_link; } } if(!byte_link.startsWith("http://")){ byte_link = "http"+byte_link; } should be correctedGrooms
O
5

just modified @silwar answer and add https :

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

But remember it that sometimes http:// create security exception in android so we should use https://.So for risk-free code, we have to do that like the last checking -

 if(!url.startsWith("http://") && !url.startsWith("https://")){
            url = "https://"+url;}
Oquendo answered 20/7, 2015 at 8:35 Comment(0)
I
3

The most efficient way of checking that the domain name is well formed and contains (or not) a prefix, is using a regular expression.

Check out Java Pattern to match regex in Android. It is worth it.

Ineluctable answered 18/5, 2012 at 9:58 Comment(1)
link is dead (404)Tripletail
Z
2

As Sebastien requested, regex is a good option. You can also get the text from the view, create an URI object

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

then with uri.somemethod You should be able to get everything about an url you want to know. If the uri fails to create, you generate error messages cause something has gone wrong.

Zakaria answered 18/5, 2012 at 10:1 Comment(0)
C
1

I would just get the text from the TextView and parse it via startsWith(). If this is false, just add it to the text and use setText() to reasign it.

You might also want to check for other expressions like only "www.". So take a closer look at contains().

Cultivation answered 18/5, 2012 at 9:58 Comment(0)
H
-2

Try this

String a = "http://";
webview.loadUrl(a + url.getText().toString());
Hock answered 18/4, 2013 at 15:12 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.