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 回答