半角英数字のみかチェックする - Perl

入力内容が半角英数字のみかチェックしたい。これも正規表現で簡単に実現できる。「半角数字のみのチェック」「半角英字のみのチェック」の合わせ技だ。

サンプル

#!/usr/bin/perl

;#
;#入力チェック
;#

if( isAlNum('abc123') ){
  print "英数字だけ\n";
}
else{
  print "英数字以外\n";
}


#---------------------------------------
#英数字のみかチェックする
#---------------------------------------
sub isAlNum{
  my $str = shift || return(undef);

  #-- 英数字のみか --#
  if( $str =~ /^[a-zA-Z0-9]{1,}$/ ){
    return(1);
  }
  #-- 英数字以外が含まれる --#
  else{
    return(0);
  }
}

[a-zA-Z0-9]の部分は、\wでも良い。この2つは同義である。ただパッと見てわかりやすい方を採用した方が後々ぐぐらなくてもすむ。正規表現が長くなる場合などに短縮として用いる方法が適しているだろう。