3

数値が小数点以下 2 桁になるように、JavaScript で数値文字列を検証する必要があります。

検証は、次の場合にのみ合格します。

  1. 数値は正確に小数点以下 2 桁です
  2. 小数点の前に少なくとも 1 桁の数字があります。(ゼロかもしれません)
  3. 小数点の前の数字は、複数のゼロで始めることはできません。

有効な数値:

0.01
0.12
111.23
1234.56
012345.67
123.00
0.00

無効な番号:

.12
1.1
0.0
00.00
1234.
1234.567
1234
00123.45
abcd.12
12a4.56
1234.5A

正規表現を試してみましたが、 の[0-9][\.][0-9][0-9]$ように小数点の前に文字を入れることができます12a4.56

4

7 に答える 7

8

.任意の文字に一致しますが、あなたが思っていることはしません。あなたはそれを逃れなければなりません。また、さらに 2 つのエラーがあります。試す

^[0-9]+\.[0-9][0-9]$

代わりに、またはさらに良いこと\dに、10 進数に使用します。

^\d+\.\d\d$
于 2012-11-03T10:41:57.400 に答える
5

これはすべての要件をカバーしています:

^(0|0?[1-9]\d*)\.\d\d$
  • 数値は正確に小数点以下 2 桁です
    • オプションではないため、わずかに満足しています\.\d\d$

他の 2 つの条件は、次のように言い換えることができます。

  • 小数点の前の数字はゼロ
  • またはゼロが 1 つだけある数値、次にゼロで始まらない数値

これは、次の 2 つのケースでカバーされます。

  • 0
  • 0?[1-9]\d*
于 2012-11-03T11:57:13.087 に答える
3

これには正規表現は必要ありません。

JavaScript には、toFixed()必要なことを行う関数があります。

var fixedtotwodecimals = floatvalue.toFixed(2);
于 2012-11-03T10:41:49.330 に答える
1
var values='0.12';

document.write(values.match(/\d+[.]+\d+\d/));

必要に応じて値を変更して確認します

于 2012-11-03T10:43:35.473 に答える
1

私はこれを使いました

^[1-9][1-9]*[.]?[1-9]{0,2}$

  • 0 受け入れない

  • 123.12は受け入れますが、123.123は受け入れません

  • 1 受け入れる

  • 12213123 受け入れる

  • sdfsf は受け入れません

  • 15.12 受け入れる

  • 15@12 不可

  • 15&12不可

于 2020-09-22T14:52:47.193 に答える