首页 > js正则判断文本中是否存在除taobao域名外的其他网址

js正则判断文本中是否存在除taobao域名外的其他网址

希望有下边的效果:

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-_%&\?\/.=]+

这个可以使用正则表达式的差集操作实现,nark正则引擎是第一个实现了交集、差集操作的正则引擎


URL的语法是一个2类文法(上下文无关文法),不是一个3类文法(正则文法),你必须完整的把URL parse出来才行,光用正则表达式是不够的,比如下面几个例子:
http://www.taobao.com@www.baidu.com
http://www.t%61obao.com
猜猜看它们都指向哪儿?


先用正则匹配完了疑似url之后,塞到一个空<a>标签中,然后取它的hostname属性就可以判断是不是淘宝了。

具体请看这个fiddle

http://jsfiddle.net/Gerhut/tBN9X/

IE7和8可以正常解析没有用户名和密码的URL

【热门文章】
【热门文章】