半角のみの入力を制限するバリデータ
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class HalfWidthValidator implements ConstraintValidator {
@Override
public void initialize(HalfWidthOnly constraintAnnotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return true; // null値は許可
}
return value.matches("[\\x00-\\x7F]+"); // ASCII文字のみを許可
}
}
半角のみの入力を制限するアノテーション
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
@Documented
@Constraint(validatedBy = HalfWidthValidator.class)
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface HalfWidthOnly {
String message() default "半角文字のみを入力してください";
Class>[] groups() default {};
Class extends Payload>[] payload() default {};
}
全角のみの入力を制限するバリデータ
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class FullWidthValidator implements ConstraintValidator {
@Override
public void initialize(FullWidthOnly constraintAnnotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return true; // null値は許可
}
return !value.matches("[\\x00-\\x7F]+"); // ASCII文字以外を許可
}
}
全角のみの入力を制限するアノテーション
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
@Documented
@Constraint(validatedBy = FullWidthValidator.class)
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface FullWidthOnly {
String message() default "全角文字のみを入力してください";
Class>[] groups() default {};
Class extends Payload>[] payload() default {};
}