基本上,这需要做的只是接受价格值,只能是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>';
}
答案 0 :(得分:6)
$itemAmt = str_replace(array('$', '%'), '', $_POST['itemAmt']);
答案 1 :(得分:2)
preg_replace('#[^0-9\.]+#','',$_POST['itemAmt']);
答案 2 :(得分:0)
可能的方式
if ( preg_match( '/^(\d+(?:\.\d+)?)[\$%]?$/', $_POST['itemAmt'] ) ) {
$validprice = preg_replace( '/^(\d+(?:\.\d+)?)[\$%]?$/', '\1', $_POST['itemAmt'] );
} else {
// invalid input
}