javascriptで、正負の整数、小数をチェックする

正負の整数、小数をチェックする正規表現ではまったのでメモ。


許容したいのは、1, -10, 0.5, -1.2


^-?[0-9]+(¥.[0-9]+)?$


と書いていたが、小数点を入れると一致しなくなる

¥. を . にしてみると任意の一文字となり、0a0等も許容してしまう。

上記で動かない理由を探していたけどわからないので、以下に変更


^-?[0-9]+([¥.]{1}[0-9]+)?$


これで意図した通りに動きました

  • トラックバック 停止中
  • コメント (4)
    • sinh
    • 2011 1/24 4:24pm

    011がマッチするのはOK?

    • co-hey
    • 2011 1/27 11:28am

    >sinhさん

    ご指摘ありがとうございます!
    たしかにマッチしますね。それは弾きたいパターンです。

    ^-?[1-9]+([0-9]+)?([¥.]{1}[0-9]+)?$

    と変更すればご指摘いただいたパターンを弾けると思われます。
    まだ動作させてないので、後で試してみます。勉強になります。

    • echoes
    • 2012 5/16 1:49pm

    これだと0.1はNGになっちゃいますね。。

    • co-hey
    • 2012 5/16 3:59pm

    >echoesさん

    ご指摘ありがとうございます!
    0.1も許容できるように、考えてみます。

コメント 停止中

%d人のブロガーが「いいね」をつけました。