我需要一个正则表达式来检查项目订单计数是 0 还是介于 2500 和 999999 之间。这甚至可能吗?
示例:您可以订购 0 件(无商品),也可以订购 2500 件或更多商品。
更新: 这需要是一个正则表达式,因为它将用于 MVC 中的验证属性。
[RegularExpression(@"SomeRegExpression", ErrorMessage = "Min order error")]
如果它必须是正则表达式:
^(?:0|\d{5,6}|2[5-9]\d\d|[3-9]\d\d\d)$
解释:
^ # Start of string
(?: # Either match...
0 # 0
| # or
\d{5,6} # a five- or six-digit number
| # or
2[5-9]\d\d # 2500-2999
| # or
[3-9]\d\d\d # 3000-9999
) # End of alternation
$ # End of string
您还可以编写自己的自定义验证属性。
有关示例,请参阅如何为 MVC和/或http://www.codeproject.com/Articles/301022/Creating-Custom-Validation-Attribute-in-MVC-3创建自定义验证属性。
例如;
public class CustomValidationAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
int number = value as int;
return (number == 0 || (number >= 2500 && number <= 999999));
}
}