1

我需要一个正则表达式来检查项目订单计数是 0 还是介于 2500 和 999999 之间。这甚至可能吗?

示例:您可以订购 0 件(无商品),也可以订购 2500 件或更多商品。

更新: 这需要是一个正则表达式,因为它将用于 MVC 中的验证属性。

[RegularExpression(@"SomeRegExpression", ErrorMessage = "Min order error")]
4

2 回答 2

3

如果它必须是正则表达式:

^(?: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
于 2012-05-22T08:09:39.973 回答
3

您还可以编写自己的自定义验证属性。

有关示例,请参阅如何为 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));
    }
}
于 2012-05-22T08:12:14.527 回答