正負の整数、小数をチェックする正規表現ではまったのでメモ。
許容したいのは、1, -10, 0.5, -1.2
^-?[0-9]+(¥.[0-9]+)?$
と書いていたが、小数点を入れると一致しなくなる
¥. を . にしてみると任意の一文字となり、0a0等も許容してしまう。
上記で動かない理由を探していたけどわからないので、以下に変更
^-?[0-9]+([¥.]{1}[0-9]+)?$
これで意図した通りに動きました
正負の整数、小数をチェックする正規表現ではまったのでメモ。
許容したいのは、1, -10, 0.5, -1.2
^-?[0-9]+(¥.[0-9]+)?$
と書いていたが、小数点を入れると一致しなくなる
¥. を . にしてみると任意の一文字となり、0a0等も許容してしまう。
上記で動かない理由を探していたけどわからないので、以下に変更
^-?[0-9]+([¥.]{1}[0-9]+)?$
これで意図した通りに動きました
Comments are closed.
011がマッチするのはOK?
>sinhさん
ご指摘ありがとうございます!
たしかにマッチしますね。それは弾きたいパターンです。
^-?[1-9]+([0-9]+)?([¥.]{1}[0-9]+)?$
と変更すればご指摘いただいたパターンを弾けると思われます。
まだ動作させてないので、後で試してみます。勉強になります。
これだと0.1はNGになっちゃいますね。。
>echoesさん
ご指摘ありがとうございます!
0.1も許容できるように、考えてみます。