-1

重複の可能性:
PHP 正規表現 - 有効な浮動小数点数

浮動小数点数のjavascriptだけでなく、phpの正規表現は何になりますか?

3、3.3、または 0.3 と 0 などの値を一致させる必要があります

4

5 に答える 5

3

浮動小数点数のトークンはありません。フロートに一致させたい場合は、次のように数字 + ポイント + 数字を使用する必要があります。

\d+(\.\d+)?
于 2012-11-02T09:36:37.730 に答える
1

PHP:

is_numeric($nb);

JS:

!isNaN(+nb);
于 2012-11-02T09:39:19.313 に答える
1

指定された文字列が int/float かどうかを確認するには:

/^\d+(\.\d+){0,1}$/

特定の文字列に含まれるすべての数字に一致させたい場合は、次のようにします。

/\b\d+(\.\d+){0,1}\b/g

それはあなたに必要なものを与えるはずです

于 2012-11-02T09:42:20.137 に答える
0

フロートは次のように書くこともできます.3。これは0.3、その場合、必要なものすべてをカバーするのと同じです。

/((?:\d)?(?:.\d+)?)/

これにより、結果がサブ結果に分割されることなく、1つの文字列全体としてグループ化されます。

したがって、これは一致します333.3.33

于 2012-11-02T09:45:34.777 に答える
0

それはあなたが望むものに依存します:チェックのみ?Florian Margaine が言ったように実行してください:is_numeric($nb)浮動小数点数と整数の PHP でctype_digits($nb)!isNaN(+nb);フロートとtypeof($nb) == "Integer"整数のJSで。

数値を変換したい (そして同時にチェックインしたい) 場合:

//for floats
$floatNb = (float) $nb;
if($floatNb != 0 || $nb === "0")//now you are sure that $nb was a float and $floatNb is the float representation

国際番号を取得した場合は、 intl extensionの数値フォーマッタを使用します。

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo numfmt_parse($fmt, $num)."\n";

正規表現は型チェックには決して適していません

于 2012-11-02T09:47:01.440 に答える