希望有下边的效果:
var urlreg = ?;
urlreg.test("阿斯蒂芬 http://www.baidu.com asdf") //true
urlreg.test("阿斯蒂芬 http://www.taobao.com asdf") //false
我现在的正则是,没有处理淘宝域名的情况:
http:\/\/([A-Za-z0-9-_]+)\.[A-Za-z0-9-_%&\?\/.=]+
希望有下边的效果:
var urlreg = ?;
urlreg.test("阿斯蒂芬 http://www.baidu.com asdf") //true
urlreg.test("阿斯蒂芬 http://www.taobao.com asdf") //false
我现在的正则是,没有处理淘宝域名的情况:
http:\/\/([A-Za-z0-9-_]+)\.[A-Za-z0-9-_%&\?\/.=]+
先用正则匹配完了疑似url之后,塞到一个空<a>
标签中,然后取它的hostname属性就可以判断是不是淘宝了。
具体请看这个fiddle
http://jsfiddle.net/Gerhut/tBN9X/
IE7和8可以正常解析没有用户名和密码的URL
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
URL的语法是一个2类文法(上下文无关文法),不是一个3类文法(正则文法),你必须完整的把URL parse出来才行,光用正则表达式是不够的,比如下面几个例子:
http://www.taobao.com@www.baidu.com
http://www.t%61obao.com
猜猜看它们都指向哪儿?