55

javascript と jQuery で使用するには、12 12.2 1236.32 123.333 と +12.00 または -12.00 または ...123.123... のような 10 進数/浮動小数点数の正規表現が必要です。ありがとうございました。

4

8 に答える 8

106

オプションで、先頭の + または - に一致し、その後に 1 つまたは複数の 10 進数が続きます。オプションで、その後に小数点と 1 つまたは複数の 10 進数が続き、文字列の最後まで:

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

正規表現パル

于 2012-04-21T04:02:03.387 に答える
16

正しい式は次のようになります。

[+-]?([0-9]*[.])?[0-9]+

これは以下に適用されます:

+1
+1.
+.1
+0.1
1
1.
.1
0.1

Python の例を次に示します。

import re
#print if found
print(bool(re.search(r'[+-]?([0-9]*[.])?[0-9]+', '1.0')))
#print result
print(re.search(r'[+-]?([0-9]*[.])?[0-9]+', '1.0').group(0))

出力:

True
1.0

Mac を使用している場合は、コマンド ラインでテストできます。

python -c "import re; print(bool(re.search(r'[+-]?([0-9]*[.])?[0-9]+', '1.0')))"

python -c "import re; print(re.search(r'[+-]?([0-9]*[.])?[0-9]+', '1.0').group(0))"
于 2016-12-08T10:24:25.727 に答える
4

isNaN を使用して、テキストの検証と、1 つの小数点の検証のみを確認できます。

var val = $('#textbox').val();
var floatValues =  /[+-]?([0-9]*[.])?[0-9]+/;
 if (val.match(floatValues) && !isNaN(val)) {
  // your function
}
于 2018-04-24T11:15:14.713 に答える
3

Paulpro と lbsweek の回答により、次のことがわかりました。

re=/^[+-]?(?:\d*\.)?\d+$/;
>> /^[+-]?(?:\d*\.)?\d+$/

re.exec("1")
>> Array [ "1" ]

re.exec("1.5")
>> Array [ "1.5" ]

re.exec("-1")
>> Array [ "-1" ]

re.exec("-1.5")
>> Array [ "-1.5" ]

re.exec(".5")
>> Array [ ".5" ]

re.exec("")
>> null

re.exec("qsdq")
>> null
于 2018-07-19T06:51:36.377 に答える
2

初めての方へ:

E 科学表記(スペースなし)の RegExp を作成しました。

const floatR = /^([+-]?(?:[0-9]+(?:\.[0-9]+)?|\.[0-9]+)(?:[eE][+-]?[0-9]+)?)$/;
let str = "-2.3E23";
let m = floatR.exec(str);
parseFloat(m[1]); //=> -2.3e+23

Unicode 番号を使用したい場合は、RegExp でall[0-9]を置き換えることができます。また、RegExp の最後に Unicode フラグを追加することもできます。\d
u

パターンをよりよく理解するには、https://regexper.com/を参照してください。
RegExp を作成するには、https://regex101.com/をお勧めします。

編集: RegExp をカラーで表示するための別のサイトを見つけました: https://jex.im/regulex/

編集 2: op は特に RegExp を要求しますが、JS で文字列を直接確認できます。

const isNum = (num)=>!Number.isNaN(Number(num));
isNum("123.12345678E+3");//=> true
isNum("80F");//=> false

NaN文字列を数値(または)に変換してから、Number()
そうでないかどうかを確認NaNします!Number.isNaN()

于 2021-03-28T23:59:03.793 に答える