【发布时间】:2018-05-17 12:22:33
【问题描述】:
在 php 中,我需要验证来自 textarea 输入的任意数量的正数和/或负数。数字可以是浮点数,并用逗号分隔。
有效:
",,,66,,78.8,-89.8,,0.0,,3.14," or "," or "67,89,10,0876,,"
在 regex101.com 的帮助下,我创建了这个正则表达式
^((-?\d+(\.\d+)?)|(,+))*$
在php中我有这个代码
if (preg_match("/^((-?\d+(\.\d+)?)|(,+))*$/", $text))
{
echo "yes";
} else
{
echo "no";
}
我的问题是,这个正则表达式也验证“-”和额外的“。”数字之间。
这应该是无效的:
",,67.8,89.8787,78-89,-8,07,,33.33.33,,,"
有人可以帮助如何改进这段代码吗?
【问题讨论】:
-
将字符串分解为数字数组,然后循环遍历数字和我们的 is_numeric。 php.net/manual/en/function.explode.phpphp.net/manual/en/function.explode.php
标签: php regex preg-match