数字0的正则表达式类型

Dav*_*pan 7 php regex

我想在输入字段中输入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;                
?>
Run Code Online (Sandbox Code Playgroud)

键入任何数字都可以,但只输入0,它返回false,如果我只键入0 ,如何检查它是否返回true

mar*_*rio 9

regexp本身已经很好了.

你的实际问题是:

 ?true:false
Run Code Online (Sandbox Code Playgroud)

filter_var正则表达式成功时,它将返回一串正义"0".

  • 现在如果?:布尔上下文中计算它,那么你的最终表达式就是false.

  • 所以用strlen()或包装你的filter_var()结果检查is_string.

     = is_string(filter_var(…, …, …)) ? true : false;
    
    Run Code Online (Sandbox Code Playgroud)

    (是的,那?true:false非常多余的.)