正则表达式 - 在范围内或零

本文关键字:范围内 正则表达式 | 更新日期: 2023-09-27 18:35:06

我需要一个正则表达式来检查项目订单计数是 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));
    }
}