1

基本的にこれが行う必要があるのは、40 または 39.95 または 100.09 または 4 などの価格値のみを受け入れることです。ユーザーがフィールドに数字以外を入力すると、エラーが返されます。

私の質問: ユーザーが入力フィールドにドル記号を入力すると、その特定のケースでエラーを返すのではなく、それが取り除かれるようにするにはどうすればよいですか?


if (ereg_replace('/^\d+(\.\d{2})?$/', $_POST['itemAmt'])) {
    echo '<h1>The original cost of the item: $' . $_POST['itemAmt'] . ' </h1>';
} else {
    echo '<h1 style="color:red; font-weight:900;">The price value was not numeric, try again :) </h1><br>';
}
4

3 に答える 3

6
$itemAmt = str_replace(array('$', '%'), '', $_POST['itemAmt']);
于 2013-01-06T20:19:32.827 に答える
2
preg_replace('#[^0-9\.]+#','',$_POST['itemAmt']);
于 2013-01-06T20:21:22.907 に答える
0

可能な方法

if ( preg_match( '/^(\d+(?:\.\d+)?)[\$%]?$/', $_POST['itemAmt'] ) ) {
    $validprice = preg_replace( '/^(\d+(?:\.\d+)?)[\$%]?$/', '\1', $_POST['itemAmt'] );
} else {
    // invalid input
}
于 2013-01-06T20:32:41.427 に答える