-3

PHP の変数から数値以外をすべて削除しようとしています。私は正規表現を試してみましたが、簡単なGoogleは、正規表現も使用するように言っているあらゆる種類の人々を見つけましたが、正規表現は機能していないようです. を使用してpreg_replace('/\D/', '', $amount);います。/\D/、 、 、 、 、 、 /[\D]/、 、/^\d//[^\d]/、 など、あらゆる種類の正規表現を試し/[^0-9]/ましたが、どれも機能しません。

編集:うまくいかなかった理由がわかりました!私は$amountpreg_replace('/\D/', '', $amount);置き換えるという印象を受けていましたが$new_amount = preg_replace('/\D/', '', $amount);、$new_amount を使用する必要があることがわかりました。ばか、私は知っています。とにかくありがとう!

4

4 に答える 4

3
<?php
$amount = '$42,3034534';
// remove extra chars
$str = preg_replace('/[^0-9.,]/', '', $amount);
// replace commas with periods, because PHP doesn't like commas as decimals
$str = preg_replace('/,/', '.', $str);
// convert to float and multiply by 100, use floor() to get rid of fractions of a cent
$cents = floor(floatval($str) * 100);
echo $cents;
// OR
echo floor(floatval(preg_replace('/,/', '.', preg_replace('/[^0-9.,]/', '', $amount))) * 100);
//output: 4230

また、「うまくいかない」というのはやめましょう。どのように機能していませんか?正しくない結果は何ですか?

于 2013-02-12T17:38:57.957 に答える