私が同じように機能することを期待しているので、私は確かにここで何かを見逃しています。
次のRegularExpressionValidator構文を想定します
<asp:RegularExpressionValidator runat="server" ID="rxEmail" ControlToValidate="txEmail"
ValidationExpression="<%$ appsettings:rxEmail %>" Text="*" />
および次のCustomValidator構文/コード
<asp:CustomValidator ID="cvEmail" runat="server" Text="*" onServerValidate="validateContactFormat" />
Sub validateContactFormat(ByVal sender As Object, ByVal args As ServerValidateEventArgs) Handles cvContactFormat.ServerValidate
Dim emailRegEx As Regex = New Regex(ConfigurationManager.AppSettings("rxEmail"))
args.IsValid = emailRegEx.IsMatch(txEmail.Text)
End Sub
web.configに保持されている式は次のとおりです。
[\w-]+@([\w-]+\.)+[\w-]+
これは単純であると考えられており、あまりうるさくならずに、最も明白な問題を取り除きます。
誰でも、入力bob.smith@someplace.co.ukを指定すると、RegularExpressionValidatorは失敗しますが、CustomValidatorは合格します。他のシナリオは期待どおりに機能します。どちらもblah@blah.comに合格しますが、blah.comに失敗します。他にも問題があるかもしれませんが、これは私が気付いた問題です。
CustomValidatorのコードは、RegularExpressionValidatorが「舞台裏で」生成するものと同じではないと思いますが、違いは正確には何で、なぜ私が見ているものを見るのですか?
どうもありがとう!