xValを使用してasp.netMVC1.0でフォームを検証しています
正規表現が正しく検証されない理由がわかりません。
- 空の値では検証されません
- 「1」、「12」、「123」、または「1234」の値では検証されません
- 「12345」の値で検証します
- 「12345」の値で検証します
- 「12345-」の値で検証します
- 「12345-1」の値で検証します
- 「12345-12」の値で検証します...など
郵便番号の場合、次の2つのパターンのいずれかを期待します。
12345
また12345 -1234
これが私が試した2つの正規表現です:
(\d{5})((( -)(\d{4}))?)
(\d{5})|(\d{5} -\d{4})
これがxValのメタデータクラスです
[MetadataType(typeof(TIDProfileMetadata))]
public class TIDProfileStep
{
public class TIDProfileMetadata
{
[Required(ErrorMessage = " [Required] ")]
[RegularExpression(@"(\d{5})|(\d{5} -\d{4})", ErrorMessage = " Invalid Zip ")]
public string Zip { get; set; }
}
}
これが私のaspxページです:
<% Html.BeginForm("Edit", "Profile", FormMethod.Post); %>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<h6>Zip:</h6>
</td>
<td>
<%= Html.TextBox("Profile.Zip")%>
</td>
</tr>
<tr>
<td>
<input type="submit"/>
</td>
</tr>
</table>
<% Html.EndForm(); %>
<% Html.Telerik().ScriptRegistrar()
.OnDocumentReady(() =>
{ %>
<%= Html.ClientSideValidation<TIDProfileStep>("Profile").SuppressScriptTags() %>
<% }); %>