正则表达式来验证网址

时间:2010-12-27 10:59:45

标签: asp.net regex validation

问:我想要一个正则表达式来验证URL,但我想允许这个字符(〜)Tilda

类似这样的网址:

http://stackoverflow.com/questions/~/ 允许http或不允许http

提前致谢

修改

我终于找到了一个完美的: (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])? 但我想允许用户使用协议输入网址或不使用它以防止任何混淆如何做到这一点。

4 个答案:

答案 0 :(得分:2)

允许非连续的波浪:

\w+([-+.'~]\w+)*

允许任何地方倾斜:

[\w~]+([-+.'][\w~]+)*

答案 1 :(得分:1)

你可以试试这个:

\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]

如果你不需要HTTP,FTP ......你可以把它当作:

\b[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]

此致 HTH。

答案 2 :(得分:1)

我不确定你想要什么。但是

\w+([~'\.]\w+)+

适用于

justname'com
just_name~com
justname.com

无效
justname
just-name-com

如果您使用

\w+([~]?)\w+\.\w+

适用于

justname.com
just~name.com

无效
justname'com
just_name~com
just-name-com

答案 3 :(得分:1)

有一个非常好的正则表达式网站here,您可以在其中获得几乎所有正则表达式。认为这对你有用。