http://d.hatena.ne.jp/ArappoCaro/20070309/1173448976
上記サイトで「1から99までの数値入力のバリデーション用正規表現」
が紹介されていました。
\d[1,2]
とかいてありましたが
\d{1,2}
のことでしょうかね?VB.NETでの正規表現らしいのですが、
これがあってるのか分からないので自分でも考えてみること
にしました。
少し回りくどいですが、お付き合いください。
私の方ではJavaScriptでの正規表現を基準にします。
まず単純に
\d{1,2}
「10進数の数字が1回以上2以下続くパターンを含む」です。
これだと「abc99xyz」も上記パターンを含むのでマッチ
してしまいます。
なので全体をメタ文字「^」と「$」で囲ってあげます。
^\d{1,2}$
で「10進数の数字が1回以上2以下続くパターンのみ」になります。
はてさて、これでいいのでしょうか?
これだと「0」も「00」もマッチしてしまいますね。
検証するために「Rex V」というサイトを使用しました。
(AJAXで使用感いいですよ。)

赤い文字がマッチしたこと示しています。やはり「0」も「00」
マッチしてしまいました。ひと工夫必要そうです。
では
^[1-9][0-9]?$
はどうでしょう。

いい感じです。これで「1から99」であることをチェックできる
のではないでしょうか。
※あえて「\d」ではなく「[0-9]」を使用しています。意味は同じです。
もし0パディングありの「01から09」もマッチさせたいなら
(もちろん「00」は除く)
^[1-9][0-9]?$|^0[1-9]$
でしょうかね。

orで「01から09」までのパターンを追加してあげました。
【2007/03/11 追記】
0パディングありもマッチさせたい場合ですが、
^([1-9][0-9]?|0[1-9])$
のほうがまだスマートですね。
「^」と「$」の組みが複数あったの見にくかったかも。

