6

1.0最大値がで最小値がである浮動小数点の入力を検証しようとしています0

Min : 0
Max : 1

可能な値;

0.1
0.99
0.365

正規表現で成功するにはどうすればよいですか?

4

9 に答える 9

10

javascript正規表現リテラルとして:

 /^(0(\.\d+)?|1(\.0+)?)$/
于 2013-01-22T15:50:52.820 に答える
6
0(\.\d+)?|1\.0

説明:

0            # a zero
(\.\d+)?     # a dot and min 1 numeric digit - this is made optional by ?
|            # or
1\.0         # one, a dot and a zero

sring全体と一致させるためにこれが必要な場合は、文字列の始まりと文字列の終わりをそれぞれ表すカレット記号とドル記号が必要になります。^(0(\.\d+)?|1\.0)$

また、可能性のある負の数を探したい場合は、のようにオプションのマイナス記号を前に付ける必要があります^-?(0(\.\d+)?|1\.0)$。もちろん、指数関数の場合、パターンを変更する必要があります。

于 2013-01-22T15:34:26.387 に答える
3

それでおしまい:

/^(0+\.?|0*\.\d+|0*1(\.0*)?)$/
于 2015-12-16T18:02:34.447 に答える
2

この正規表現はうまくいくはずです:

/((0(\.[0-9]*)?)|(1(\.0)?))/

指数形式の浮動小数点を一致させることを計画していない限り。

于 2013-01-22T15:24:12.463 に答える
2

これは私のために働いた:

0+([.][0-9]+)?|1([.]0)?

それとも私は何かを逃しましたか?:)

于 2013-01-22T15:26:56.060 に答える
1

これは、オプションの記号を使用して[0,1]の浮動小数点数と一致しますが、科学的記数法が使用されている場合、または数値が小数点で始まる場合は一致しません。

\+?(0(\.[0-9]+)?|1(\.0+)?)
于 2013-01-22T15:29:55.920 に答える
1

一般的な解決策:

^0*(?:(?:0(?:\.\d*)?|\.\d+)|1(?:\.0*)?)$

フォーマット済み:

 ^     
 0* 
 (?:
      (?:
           0 
           (?: \. \d* )?
        |  \. \d+ 
      )
   |  
      1 
      (?: \. 0* )?
 )
 $
于 2015-12-16T17:57:26.817 に答える
0

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

これは、次の形式の数字[0,1]を受け入れます 

0 0.5 .5 1 1.0 1.000

于 2017-01-10T06:06:57.420 に答える
0

正規表現についての簡単な説明を読んでください。これがうまくいくことを願っています!

^(0.0*[1-9](\d+)?)$

何か足りないものがあれば教えてください。

于 2019-04-12T11:58:38.720 に答える