修改现有的url验证正则表达式,以便在javascript中接受更多的url

时间:2011-07-26 12:12:54

标签: javascript regex validation url

目前我正在使用:

/^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?    \,\'\/\\\+&%\$#_]*)?$/

作为验证URL的正则表达式。

这无法检查以下网址:

domain.com,www.domain.com,m.some.com,m.some.com?test = test,http://www.some.com/?param=%20test

有人可以帮我修改吗?我几乎没有什么功能可以解决这个问题。所以无法寻找一个全新的。

提前致谢。

2 个答案:

答案 0 :(得分:3)

给它一个旋转 - 你真的很亲密:

/^((ht|f)tp(s?)\:\/\/)?[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(\.[a-zA-Z0-9\-_]+)+(:(0-9)*)*((\/?)|((\/[a-zA-Z0-9\.\-_]+)+)?)(\?[a-zA-Z0-9\-\.\?    \,\'\/\\\+&%\$#=\.\-_]*)?$/;

答案 1 :(得分:1)

作为第一个近似值,这将解决您的问题:

/^((ht|f)tp(s?)\:\/\/)?[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)((?:&|[a-zA-Z0-9\-_=.?,'\/+%\$#])*)?$/