我想在输入字段中输入0到9的任何数字,所以我检查filter_var如下所示
<?PHP $res['pno'] = filter_var($cond['pno'],FILTER_VALIDATE_REGEXP,//check valid phone no array('options'=>array('regexp'=>'/^0+[0-9]*$/')))?true:false; ?>
输入任何数字都可以,但是只输入0,它返回false,如果我只输入0,如何检查它是否返回true?
regexp本身已经很好了.
你的实际问题是:
?true:false
当正则表达式的filter_var
成功时,它将返回一个只有“0”的字符串.
>现在如果?:在布尔上下文中计算它,那么你的最终表达式将只是假.
>所以用strlen()
或is_string
包装你的filter_var()结果检查.
= is_string(filter_var(…,…,…)) ? true : false;
(是的,?true:false是非常多余的.)