我有一些值,例如4,3或5。
我想只允许数字(从0到9)和逗号。
我找到了这个功能,pregmatch但它无法正常工作。
<?php
$regex="/[0-9,]/";
if(!preg_match($regex, $item['qty'])){
// my work
}
?>
怎么了? 感谢
答案 0 :(得分:6)
更正语法:
$regex="/^[0-9,]+$/";
^
表示行的开头
+
代表一个或多个组字符
$
代表行尾
答案 1 :(得分:4)
这应该这样做:
'~^\d+(,\d+)?$~'
它允许例如1
或11,5
,但1,
或,,1
或,,
^
\d+
后跟一个或多个数字(,\d+)?
可选:逗号,
后跟一个或多个数字$
结束 \d
是数字[0-9]
你问$regex="/[0-9,]/";
它会匹配[characterclass]中的任何0-9
或,
。甚至,在匹配abc1s
或a,b
之类的字符串时,因为使用了 no anchors 。
答案 2 :(得分:1)
如果您知道它将是以逗号分隔的列表,请使用explode()
:
<?php
// test item with incorrect entries
$item = '1,2,3,4,d,@,;';
// explode whatever is between commas into an array
$item_array = explode(',', $item);
// loop through the array (you could also use array_walk())
foreach($item_array as $key => $val)
{
// to clean it
$item_array[$key] = (int) $val;
// use the values here
}
// or here
?>
答案 3 :(得分:0)
<?php
$regex = '/^[0-9,]+$/';
if(!preg_match($regex, $item['qty'])) {
// my work
}
?>