Open TokiNoviceProgrammer opened 2 months ago
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.AssertTrue;
public class PostalCodeForm {
@NotEmpty(message = "{postalCode.required}")
private String postalCode;
public String getPostalCode() {
return postalCode;
}
public void setPostalCode(String postalCode) {
this.postalCode = postalCode;
}
// ハイフンなしで7桁までのバリデーション
@AssertTrue(message = "{postalCode.tooLongWithoutHyphen}")
public boolean isValidWithoutHyphen() {
if (postalCode == null || postalCode.isEmpty()) {
return true; // 必須エラーはNotEmptyで処理
}
return postalCode.matches("\\d{1,7}");
}
// ハイフンありで8桁までのバリデーション
@AssertTrue(message = "{postalCode.tooLongWithHyphen}")
public boolean isValidWithHyphen() {
if (postalCode == null || postalCode.isEmpty()) {
return true;
}
return postalCode.matches("\\d{3}-\\d{4}");
}
// 数値とハイフン以外が含まれていないかのバリデーション
@AssertTrue(message = "{postalCode.invalidCharacters}")
public boolean hasValidCharacters() {
if (postalCode == null || postalCode.isEmpty()) {
return true;
}
return postalCode.matches("[0-9-]*");
}
}
postalCode.required=郵便番号を入力してください。
postalCode.tooLongWithoutHyphen=郵便番号は、0文字以上、7文字以下で入力してください。
postalCode.tooLongWithHyphen=郵便番号は、0文字以上、8文字以下で入力してください。
postalCode.invalidCharacters=郵便番号に不正な値が設定されています。
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.AssertTrue;
public class PostalCodeForm {
@NotEmpty(message = "{postalCode.required}")
private String postalCode;
public String getPostalCode() {
return postalCode;
}
public void setPostalCode(String postalCode) {
this.postalCode = postalCode;
}
// ハイフンなしで7桁までのバリデーション
@AssertTrue(message = "{postalCode.tooLongWithoutHyphen}")
public boolean isValidWithoutHyphen() {
if (postalCode == null || postalCode.isEmpty() || postalCode.contains("-")) {
return true; // ハイフンが含まれている場合はここでスキップ
}
return postalCode.matches("\\d{1,7}");
}
// ハイフンありで8桁までのバリデーション
@AssertTrue(message = "{postalCode.tooLongWithHyphen}")
public boolean isValidWithHyphen() {
if (postalCode == null || postalCode.isEmpty() || !postalCode.contains("-")) {
return true; // ハイフンが含まれていない場合はスキップ
}
return postalCode.matches("\\d{3}-\\d{4}");
}
// 数値とハイフン以外が含まれていないかのバリデーション
@AssertTrue(message = "{postalCode.invalidCharacters}")
public boolean hasValidCharacters() {
if (postalCode == null || postalCode.isEmpty()) {
return true;
}
return postalCode.matches("[0-9-]*");
}
}