通常android有自己的sdk库判断web url是否为有效的url,
Patterns.WEB_URL.matcher(str).matches()。
这个是对url进行通用的判断,最近根据产品需求,需要添加一些social media link,并验证这些link是否有效且正确。
下面是对各种社交的link进行的一些正则判断:
//判断是否为weibo的网址
private String weiboRegex = "^(https?:\/\/)?((www|m)\.)?weibo\.c(om|n)\/(u\/)?(\w)+/?$";
//判断是否为linked-in网址
private String linkedinRegex = "^(https?://)?((www)\.)?linkedin\.com/in/[a-zA-Z0-9%-]+/?$";
//判断是否为twitter
private String twintterRegex = "^(((https?://)?((www)\.)?twitter\.com/))(\w)+/?$";
//判断是否为facebook
private String facebookRegex = "^(https?://)?((www)\.)?facebook\.com/(\w)+/?$";
//判断是否为telegram
private String telegramRegex = "^(https?://)?((www)\.)?((telegram)|t)\.me/(\w)+/?$";
//判断是否为Vkontakte
private String vkRegex = "^(https?://)?((www)\.)?vk\.com/(\w)+/?$";
//判断是否为youtube
private String youtubeRegex = "^(https?://)?(www.)?youtube\.com/(watch?v=|user/|channel/)[a-zA-Z0-9-]+/?$";
//判断是否为youku
private String youkuRegex = "^(https?://)?((www)\.)?i\.youku\.com/(i/|u/)?(\w)+/?$";
//判断是否为Instagram
private String instagramRegex = "^(https?://)?((www)\.)?instagram\.com/[\w.]+/?$";
上面这些是对输入的某些link是否为确切的某个网址并有效做了判断,如有其他问题,欢迎来交流。