Perlで値が半角数字かのチェックを行うには?

[上に] [前に] [次に]
ふにゃちん 1999/11/30(火) 11:39:50
 いつもお世話になっております。
 Perlで$hogehogeに入ってる値が半角数字かどうかのチェックを行うのはどうしたらよいのでしょうか?

if ($hogehoge >= 0 && $hogehoge <= 9) { ; } else { エラー処理; }

 これだと、0〜9まで範囲しかチェック出来ないしな・・・。

ふにゃちん 1999/11/30(火) 11:57:34
[[解決]]
自己レスです。
自分で分かってしまいました。お手数?かけました。

if ($hogehoge !~ /[0-9]+/) { エラー処理; }

andi 1999/11/30(火) 12:03:59
=~ /\D/
とか。+はいりますか?

B-Cus 1999/11/30(火) 13:26:16
> if ($hogehoge !~ /[0-9]+/) { エラー処理; }
$hogehoge = '123abc' とか $hogehoge = 'abc123' とかでも
エラーにならないけど、いいの? いいなら、いいです。

P初心者 1999/11/30(火) 16:13:19
以下はどうですか〜

if($hogehoge !~ /[~0-9]/){
   数字
}
else{
   エラー
}

ふにゃちん 1999/11/30(火) 17:07:29
え〜、結局

if ($hogehoge !~ /\D/) { エラー処理; }
を使うことにしました(これが一番すっきりして短いので)

匿名不希望 1999/12/01(水) 07:29:39
> if ($hogehoge !~ /\D/) { エラー処理; }

いや、、、
if ($hogehoge =~ /\D/) { エラー処理; }
か、
if ($hogehoge !~ /\d/) { エラー処理; }
ですよ(良く見てね)

匿名不希望 1999/12/01(水) 07:31:45
すみません、、、
if ($hogehoge !~ /\d/) { エラー処理; }
はウソでした

よく見てね>ワシ(^^;)

[上に] [前に] [次に]