ちら帳

喉元を過ぎると熱さを忘れる自分の為の、ちら裏メモ帳ブログです。

有効桁数の決まっていない整数、小数と一致する正規表現パターン

たまにしか書かないので正規表現が苦手です。

有効桁数の決まっていない整数、小数と一致するパターンの
実装がすぐに分からなかったのでメモ。

^[-]?([1-9]\d*|0)(\.\d+)?$

以下JSのざっくりとした確認コード。

const reg = new RegExp(/^[-]?([1-9]\d*|0)(\.\d+)?$/)
const str = [
  '0',
  '100',
  '10.00',
  '0.1',
  '0.0',
  '-1',
  '-2.4',
  '00',
  '..0',
  '0..0',
  '0-0',
  '0.',
  'a',
  '-a',
]

str.forEach(element => console.log(`${element}\t:${reg.test(element)}`))
> "0  :true"
> "100   :true"
> "10.00 :true"
> "0.1   :true"
> "0.0   :true"
> "-1    :true"
> "-2.4  :true"
> "00    :false"
> "..0   :false"
> "0..0  :false"
> "0-0   :false"
> "0.    :false"
> "a     :false"
> "-a    :false"