1.原因
最近项目需要对用户所提交的地址进行匹配(用户界面只有一个输入框,且没有相应标签进行选择)如下:
当然不能给你们看项目具体什么样,这是一个DEMO功能类似于当前项目。
该项目需要对用户所给出的字符串进行处理。
2.输入类型
当前一共有三种输入类型:
- 外部网站地址,如
www.baidu.com
形式 - 局域网内共享盘地址,如
file://YAOK-A-PC1/android
或者\\192.168.xxx.xxx\DailyBuild\201x.0x.xx\x.0.0.xx-xxx
形式 - 上传到网站空间的相对下载地址,如
/xxxxx/1092dfe7-f6d1-4910-a0d7-2cf336297ebb.xxx
形式
3.处理形式
其中对类型1,2进行跳转操作,对类型3需进行文件下载操作。
原先主要是对http头com结尾等特征点进行匹配,但这种匹配对于tongji.baidu.com/web/welcome/login
这种形式的URL识别不甚给力。经过在网络中的搜索,以及自己根据当前项目需求的修改,现在试出了一个新的正则匹配表达式,表达式如下:
^(http:\/\/|ftp:\/\/|https:\/\/|file:\/\/|\\\\|)[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$
4.测试结果
TIPS:在这里推荐使用在线的正则表达式测试网站进行测试
下面放测试结果:
1.外部地址:
1-1
1-2
1-3
2.局域网内共享盘地址
2-1
2-2