我有以下文本框控件和正则表达式验证器:
<asp:TextBox runat="server" ID="ATextBox" style="width:400px;"/>
<asp:RegularExpressionValidator runat="server" ID="ATextBoxRegularExpressionValidator" Display="Dynamic"
ControlToValidate="ATextBox" ValidationExpression="^([a-zA-Z0-9]+)|((https?://)?([\w-]+\.)+[\w-]+(/[-\w ;,./?%&=]*)?)$"
ErrorMessage="<%$ Resources:Antivirus, AVURL_InvalidLink %>">
</asp:RegularExpressionValidator>
正则表达式是:
^([a-zA-Z0-9]+)|((https?://)?([\w-]+\.)+[\w-]+(/[-\w ;,./?%&=]*)?)$
当我使用任何验证器表达式测试器测试它时,它可以工作,例如:
http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx
基本上,正则表达式应该接受所有 URL 和主机名。
太好了:谷歌 google.com http://google.com https://google.com
坏的:
<asp>http://google.com</asp>
任何人都知道为什么我在应用程序中运行时的正则表达式失败了以下内容:google.com http://google.com https://google.com
更新
我已经设法解决了我的问题....正在做我想做的正则表达式是:
^((https?://)?([\w-]+.) [\w-]+(/[-\w ;,./?%&=] )?)$
谢谢你的帮助