2012-10-16 3 views
4

mvc를 사용하고 있습니다. 그래서 사용자 입력 번호가 7 자리임을 확인하고 싶습니다.7 자리 숫자의 유효성을 검사하는 방법은 무엇입니까?

그래서 나는 수업을 썼다.

public class StduentValidator : AbstractValidator<graduandModel> 
    { 
     public StduentValidator(ILocalizationService localizationService) 
     {       
      RuleFor(x => x.student_id).Equal(7) 
       .WithMessage(localizationService 
        .GetResource("Hire.graduand.Fields.student_id.Required"));     
     } 

하지만 작동하지 않습니다. 7 자리 숫자를 확인하는 방법은 무엇입니까? 당신이 FluentValidation를 사용하고 있기 때문에

+2

당신이 FluentValidation를 사용하는 것, 즉 언급 할 중요한 일이 될 수 있습니다. –

답변

16

에 대한 Regex을 사용할 수 있습니다, 당신은 정규 표현식 매치를 수행 할 .Matches에게 유효성 검사기를 사용하고 싶습니다. 당신이 초과]과 작음 검증하지만, 위의 읽기 쉽게 사용할 수,

RuleFor(x => x.student_id).Must(x => x > 999999 && x < 10000000)... 

을 또는 :

RuleFor(x => x.student_id).Matches("^\d{7}$").... 

또 다른 옵션은 (student_id가 숫자 인 경우) 같은 것을 할 것입니다. 또한 숫자가 0000001과 같은 경우 위의 코드가 작동하지 않으면 7 자릿수의 문자열로 변환하고 아래 기술을 사용해야합니다. student_id 문자열이 같은 무언가 경우

는 :

int i = 0; 
RuleFor(x => x.student_id).Length(7,7).Must(x => int.TryParse(x, out i))... 
+0

또는 포함 된 내용 – user1348351

+0

@ user1348351 - 그 이유는 설명서에 나와 있지 않기 때문에 나는 그 사실을 잊고 있습니다 ... –

1

당신이

bool x = Regex.IsMatch(valueToValidate, "^\d{7}$"); 
관련 문제