【发布时间】:2020-11-01 21:14:19
【问题描述】:
所以我一直在努力让我的旧网站恢复活力。
我开始用 preg 替换 ereg,但是已经很久没有写任何 PHP 了。
目前我被困在这个问题上:
$_POST['amount'] = preg_replace("/[^0-9/]",'',$_POST['amount']);
$_POST['amount'] = round($_POST['amount']);
if (!preg_match('/[^0-9]/', $_POST['amount'])) {
echo "Invalid amount.";
}else {
echo "Passed";
}
我不完全确定我哪里出错了。例如应该是!preg_match 还是preg_match?
编辑:
$_POST['amount'] 允许用户输入数字,如果尝试,则需要替换除数字以外的任何其他内容。
【问题讨论】:
-
@RiggsFolly 我看到你说的帖子和我的一样,但对我来说似乎没有意义,似乎与我想要实现的目标不同......?
-
is_numeric()似乎是最简单的。或者filter_var() -
我不确定浮点数是什么,但用户需要输入像 1234 这样的数字。我尝试使用 preg_replace 和 preg_match 的目的是让脚本停止/替换以下条目 - 1,2)3 美元 4 到 1234。希望这是有道理的......
-
在这段时间里,您可以简单地使用 preg_replace 并提出
preg_replace("/[^0-9]/",'',$_POST['amount']);或者查看下面的答案,我注意到基本上是在说同样的事情 -
如果他们用像
£999.00浮点数这样的便士输入钱,那么添加一个点就可以解决这个问题。preg_replace("/[^0-9.]/",'', $_POST['amount']);
标签: php preg-replace preg-match