我目前正在研究一个名为费用的小型web应用程序,可以通过php数组将您的费用节省到mysql数据库。
这是它的工作原理。
在第一页,你必须输入你想要保存到mysql数据库的费用项目的数量。
那么,让我们假设你输入3作为项目的数量,你会被重定向到另一个页面,在那里你会提供文本框,你会输入项目的名称和相应的金额,然后点击保存按钮保存到数据库。
那么,我如何限制文本框的数量,使其只接受数字字符和一个点,这样数字字符必须开始,然后跟着一个点(这是可选的),它也必须以一个数字字符结束。
e。G 100.8, 250.4, 250, 300.8, 200.
这是我的代码
foreach ($amount as $digit)
{
if((!ctype_digit($digit)) || ($digit<1) || (!preg_match("/['.]$/",$digit)))
{
echo " Only positive, numeric, non-zero digits and a dot are allowed for amount of item";
exit();
}
}
如果你能帮我纠正这个问题,我会很高兴的,因为我已经和这个问题斗争了2天了
适合您的任务的模式是:
"^[1-9]''d*(''.''d+)?$"
表示任何非零数字后跟任意数量的数字,并可选后跟一个点,后面至少有一个数字。
也就是说,假设$amount包含"123.45",你的代码应该是:if (!preg_match("^[1-9]''d*(''.''d+)?$", $amount)
{
echo " Only positive numbers are allowed for amount of item";
exit();
}
同时,你应该将字符串中的所有反斜杠都翻倍:
"/[''.]$/"
因为你的结构
"/['.]$/"
表示程序接收到字符串
/[.]$/