数据注解失败
本文关键字:失败 数据 | 更新日期: 2023-09-27 18:19:14
在我的c#类中,我正在用验证5位数的数据注释装饰属性。号码长度必须最小和最大不超过5位。但它总是说无效。我的正则表达式有什么问题?
[RegularExpression(@"^'(?([0-9]{5})')$", ErrorMessageResourceType = typeof (GlobalErrorResource), ErrorMessageResourceName = "QUOTEREQUEST_VALID_ZIP_CODE")]
你也可以试试这个表达式
"^[0-9]{5,5}$"
根据我的理解,/ /
在JavaScript中使用。
试试这个正则表达式@"^('d{5})$"
' d 如果 [0 - 9] 组
{5}作为你所知道的长度。
{1,5}可以,如果你想指定最小(1)和最大(5)长度
你的正则表达式:
|-------------- start of group 1
v v----- end of group 1
@"^'(?([0-9]{5})')$"
^^ ^ ^ ^ ^ ^-- end of line
|| | | | |---- literal right parenthesis ")"
|| | | |------- match 5 times
|| | |----------- match characters '0' thru '9'
|| |--------------- non-greedy match (I believe)
||----------------- literal left parenthesis "("
|------------------ start of line
你真的想要匹配圆括号吗,比如"(12345)"div ?
你也可以创建自己的属性:
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
public class ZipAttribute : System.ComponentModel.DataAnnotations.RegularExpressionAttribute
{
public ZipAttribute() : base("''A''b[0-9]{5}(?:-[0-9]{4})?''b''z")
{
ErrorMessage = "Invalid ZIP code.";
}
}
要使用它,您需要在Global.asax
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(ZipAttribute), typeof(RegularExpressionAttributeAdapter));
对于5位或9位的邮政编码
[Display(Name = "Zipcode"), RegularExpression("[0-9]{5}(-[0-9]{4})?", ErrorMessage="Zipcode must be in the proper format: '12345' or '12345-6789'")]
你可以使用这个
[RegularExpression(@"[0-9]{5}")]
当您输入'(时,您表示您必须添加括号来放置邮政编码。