数値を正規表現で表現する


やりたいこと

数値のみを許容する正規表現を書きたい。

OK

12
-4
-33.3
+6
1000.0
0.5

NO

あいう
abc
z10
+-1
--2
@/?=
100.00.00 (ピリオドが2つ以上ある)

結論

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

解説

  • ^([+-])?: 先頭に「+」「-」どちらかがある or 何もない
  • ([0-9]+): 0 から 9 の半角数字のいずれかが1文字以上ある
  • (\.)?: ピリオドがある or 何もない
  • ([0-9]+)?$: 末尾に 0 から 9 の半角数字が1文字以上ある or 何もない

一言

分解して考えると分かりやすいですね!