我已经在模型中声明了一个10位数手机号码的注释,但是它仍然接受超过10位数的手机
public IActionResult OnPost()
{
if (LoginCheck())
{
Message = "success";
//Login was a success. Go to the next page
return Redirect("/FileIwantTo");
}
else
{
Message = "failure";
//Login was a failure. Noting happens. exept the message
return Redirect("/FileI´mStaying");
}
}
当我们输入任何手机号码时,仅接受10位数字的手机号码
答案 0 :(得分:1)
使用@Size
定义输入的长度。
使用@Min
有所不同。
也使用@NotBlank
代替@NotNull
如@NotBlank
会检查
答案 1 :(得分:1)
如果您正在使用休眠模式,则可以使用:
@Length(max = 10)
将max的长度限制为10。此@Length是休眠特定的。 您还可以使用:
@Size(min = 10, max = 10)
设置条件以根据您的要求验证最小和最大长度。
答案 2 :(得分:0)
对于手机号码验证,我建议编写您的自定义验证器注释。由于手机号码可以有不同的有效模式。 首先,您定义一个注释类型:
@Target({ElementType.FIELD , ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PhoneNumberValidator.class)
public @interface PhoneNumberValidationAnnotationName {
String message() default "Message to returned on validation failure";
Class<?>[] groups() default {} ;
Class<? extends Payload>[] payload() default {} ;
}
之后,您在单独的类中定义验证逻辑:
public class PhoneNumberValidator implements
ConstraintValidator<PhoneNumberValidationAnnotationName, String> {
//Here you define your phone number valid pattern
//you can put country code, number length, any specific pattern
private final String PATTERN = "(country-code)[0-9]{8}" ;
@Override
public boolean isValid(String phone, ConstraintValidatorContext context) {
if(Pattern.matches(FIRST_PATTERN , phone)) {
return true ;
}
return false ;
}
}
有关详细信息,click here
答案 3 :(得分:0)
下面的代码对你有用
@NotBlank(message = "mobileNumber is required")
@Size(min = 10, max = 10)
public String mobileNumber;