我必须检查逗号分隔值,其中我只允许大于0的数字字符,下面的逗号是我需要的格式
及以下是正则表达式不应接受的错误
我使用了正则表达式
这个接受所有数字字符和逗号但也接受0
return ( ! preg_match("/^([0-9,])+$/i", $quantity)) ? FALSE : TRUE;
这个人接受在任何地方不接受0
return ( ! preg_match("/^([1-9,])+$/i", $quantity)) ? FALSE : TRUE;
答案 0 :(得分:0)
这应该做的工作
^[1-9][0-9]*$
答案 1 :(得分:0)
为了良好的可读性和可维护性,我宁愿坚持使用验证函数 - 这样的话:
function validateCsv($input)
{
foreach (str_getcsv($input) as $value) {
if (!preg_match('#^[\d]+$#', $value)) {
throw new \Exception('invalid CSV-value ' . $value);
}
if ($value <= 0) {
throw new \Exception('invalid CSV-value ' . $value);
}
}
}