【问题标题】:Check empty input form检查空输入表单
【发布时间】:2015-08-12 07:37:37
【问题描述】:

filter_var()提交时如何检查空输入表单

我想使用 filter_validate_regexp 函数,但不知道 regexp 模式来检查空字段。

$cond = filter_var(
    $_GET['name'],
    FILTER_VALIDATE_REGEXP,  
    array(
        'options' => array('regexp'=>'???')
    )
) ? true : false;  

【问题讨论】:

  • 你的意思是^$??这是一个空字符串的正则表达式。非空 - ^[\s\S]+$.
  • 为什么不用empty($_GET['name'])函数呢?
  • 是的,我想检查正则表达式模式。:) @Patrick2607

标签: php regex


【解决方案1】:

为了检查一个值是否不为空,猜测你的意思是有一个值的东西,只需 if 就可以了。

if ($_GET['name'])

【讨论】:

    【解决方案2】:

    Detect non-empty string with regexp?

    /[\s\S]/
    

    这就是你要找的东西吗?

    编辑:

    $_GET['name'] == null --> $cond = false
    $_GET['name'] == false --> $cond = false
    $_GET['name'] == true --> $cond = true
    $_GET['name'] == '' --> $cond = false
    $_GET['name'] == ' ' --> $cond = true
    $_GET['name'] == 'anystring' --> $cond = true
    

    【讨论】:

    • 我认为您缺少一个限定符。字符类后面不应该有 * 限定符吗?
    • 您不需要重复,因为 $cond 变为 true 并找到第一个字符。我已经测试过了,它可以在没有量词的情况下工作。
    • 是量词。但这不允许像“x”这样的东西吗?第一个字符是空格,但输入包含非空格。
    • " x" 返回 true。那很糟?对不起,也许我只是不明白这个问题。但是,当您从 $_GET 获取“名称”时,您不介意第一个或最后一个字符是“”,是吗?你可以使用$name = trim( $_GET['name'] )
    猜你喜欢
    • 1970-01-01
    • 2015-09-04
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 2012-05-18
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多