半角数字だけかチェックする
例えば郵便番号や電話番号などのチェックに、半角数字のみかをチェックをしたい。このような場合には、正規表現を用いると良い。
;#
;#入力チェック
;#
if( isNumeric('abc123') ){
print "数字だけ\n";
}
else{
print "数字以外\n";
}
#---------------------------------------
#数字のみかチェックする
#---------------------------------------
sub isNumeric{
my $str = shift;
#-- 数字のみか --#
if( $str =~ /^[0-9]{1,}$/ ){
return(1);
}
#-- 数字以外が含まれる --#
else{
return(0);
}
}
「{1,}」は1以上という意味の量指定子を用いているが、「[0-9]+」などのように「+」で表現しても良い。ただ個人的には見た瞬間に理解できる方がオススメ。
■関連ページ
・半角数字だけかチェックする
・半角英字のみかチェックする
・半角英数字のみかチェックする
・半角数字を全角数字へ変換する
・全角数字を半角数字へ変換する
・全角カナを半角カナへ変換する
・半角カナを全角カナへ変換する
・半角カナが含まれているかチェックする


コメント
my $str = shift || return(undef);
は、isNumeric(0); は正しい値(数値)を返さない。単純に、
my $str = shift;
でよい。
投稿者: KKEN | 2009年01月25日 15:21
>KKENさん
おお、確かに。
これはうっかりですね。先ほど修正しました。
ご指摘ありがとうございます。
投稿者: かつべ | 2009年01月26日 18:38