【问题标题】:How to differentiate between a search query and an URL?如何区分搜索查询和 URL?
【发布时间】:2018-02-18 23:11:02
【问题描述】:

我正在尝试制作一个安卓浏览器,我有一个searchView

现在我正在为用户在SearchView 中输入的任何内容提供谷歌搜索结果,但我想区分搜索查询和 URL,(例如,如果用户输入“facebook.com”用户应该是定向到“http://www.facebook.com”)。

我尝试检查查询是否后跟“.com”,但当用户尝试访问“.net”“.in”或任何域后跟“.com”以外的任何域时,这将无济于事。

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: android string url search browser


    【解决方案1】:

    你可以使用

    Patterns.WEB_URL.matcher(yourQueryOrUrl).matches();
    

    如果 url 是有效的 Url,它将返回 true,如果只是查询而不是 url,它将返回 false。它将处理您的 .in 和 .net 域案例

    【讨论】:

    • 感谢回复,我想问一下是否需要通过“facebook.com”或者我需要在查询前添加'facebook.com'?
    • 仅将“facebook.com”作为字符串。像 Patterns.WEB_URL.matcher("facebook.com").matches();无需在查询上添加额外的“”,只需通过查询
    • 谢谢,如果用户输入 ''facebook.com" 可以正常工作,但是如果用户在其前面添加 www.,则由于双“www”,网页无法加载。有没有办法可以检测到用户输入了多少。这是我验证是否是URL后的代码。 web1.loadUrl("http://www."+search_q);
    • 不要添加额外的“http://www.”。你可以为你的用例 if(!search_q.startsWith("www.")&& !search_q.startsWith("http://")){ search_q = "www."+search_q; } if(!search_q.startsWith("http://")){ search_q = "http://"+search_q; }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2019-03-15
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    相关资源
    最近更新 更多