2012-05-22 3 views
1

품목 주문 횟수가 0 또는 2500 - 999999인지 확인하려면 RegEx가 필요합니다.이 작업을 수행 할 수 있습니까?정규식 - 범위 또는 제로

예 : 0 개 (품목 없음) 주문하거나 2500 개 이상 주문해야합니다.

업데이트 : MVC의 유효성 검사 특성에 사용되므로 RegEx 여야합니다.

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

질문이 명확하지 않습니다 ... 예제를 만들 수 있습니까? – aleroot

+6

C#은 정규식보다 훨씬 쉽게 사용할 수있는 숫자를 비교하는 연산자를 가지고 있습니다. – Stilgar

+0

예,하지만 이것은 MVC 모델의 유효성 검사 속성에서 다음과 같이 사용됩니다 : [RegularExpression (@ "SomeRegExpression", ErrorMessage = "Min order error")] – Stian

답변

3

는 정규식 수있는 경우 :

^(?:0|\d{5,6}|2[5-9]\d\d|[3-9]\d\d\d)$ 

설명 : 당신은 또한 사용자 정의 검증 attibute를 작성할 수

^    # 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 
+0

와우 - 그저 훌륭합니다! 설명 주셔서 감사합니다 :) 최대 값이 2500 이상이어야한다고 말하는 방법이 있습니까? (나는 이것을 텍스트 입력에서 직접 제어 할 수있다.) – Stian

+1

@Stian :'\ d {5,6}'를'\ d {5,}'로 대체하십시오. 이렇게하면 "5 자리 또는 6 자리 숫자"가 "5 자리 이상"으로 바뀝니다. – Heinzi