技術開発日記

技術やら日々思ったことを綴ってます。

バリデーション

バリデート処理の条件として、英数字のみとしたい場合にCharacterクラスのisLetterOrDigitというものがあるらしく、以下のように使うと検知できる。

String text = "ABC123あいう#$%";
for (char c : text.toCharArray()) {
  // 英数字の場合は出力
  if(Character.isLetterOrDigit(c)) {
    System.out.print(c);
  }
}

と思ったが、実際は平仮名もOKにしてしまうので、正規表現使わないとダメなのかと思っていたら、Jakarta Commons LangのStringUtilsに便利なメソッドがありました。

☆StringUtils.isAlphanumericSpace☆

if (StringUtils.isAlphanumericSpace(text)) {
  // 英数字の場合は出力
  System.out.println(text);
}

他にも英字だけ、数字だけ、英数字スペースをチェックするのもあるので、フレームワークを使っていない場合で、バリデート処理をしたい場合には一度Commonsを見てみるのもいいかも。