正規表現で数字を判定する方法を教えてください。

[上に] [前に] [次に]
おきな 1998/09/28(月) 12:11:14
簡単な質問で恐縮ですが、$valが数字かどうか判定する方法を教えてください。
正規表現というのをつかえばいいのは分かるんですが、どうもよく分かりません。

if ($val =~ /[0-9]+/)

こんな感じなのは分かるのですが、これだと、数字が含まれているだけでHitしてしまいます。

「0−9だけからなる一文字以上の文字列」

だけをHitさせる方法を教えてください。

Tiot [E-Mail] 1998/09/28(月) 13:57:40
if($val =~ /^[0-9]+$/)
こんな感じでしょうか。
~は文字列の最初、$は最後をあらわします。

尾高 雄吾 [E-Mail] 1998/09/28(月) 14:09:08
perlの正規表現なら、
if ($val =~ /^\d+$/)
とか、
if ($val != /\D/)
なんてのもアリでしょうか。
\dは数字、\Dは数字以外の文字にマッチします。
# 二重否定ってのは、ちとわかりにくいかな

おきな 1998/09/28(月) 14:19:56
[[解決]]
早速の回答ありがとうございました!!
解決しました。助かりました。


匿名希望 1998/09/28(月) 14:54:04
改行が入っている(かもしれない)場合は事前にchompしたほうがいいでしょう。

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