次のテキスト ボックス コントロールと正規表現バリデータがあります。
<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 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 ;,./?%&=] )?)$
ご協力いただきありがとうございます