【问题标题】:How to change my validation to make field optional如何更改我的验证以使字段可选
【发布时间】:2013-09-23 20:28:15
【问题描述】:

我有一些输入,但我不希望它是必需的,我希望它是可选的。但是,我的验证是必需的。

我需要带有preg_match 的新代码,但不强制该字段。

我的代码是:

if(!preg_match("%^(https?://)([a-z0-9-].?)+(:[0-9]+)?(/.*)?$%i", $temp2)){
    $this->class->obj['post_errors'] = 'no_image';
}

【问题讨论】:

  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。
  • 如果$temp2 是您正在测试的用户输入,请将整个if 语句包装在if ($temp2) { ... } 中。因此,只有在需要测试的情况下才能设置错误条件(换句话说,您正在将验证从必需更改为可选)。
  • @adamdunson,我认为“必需”,OP 表示“必需输入”,即控件的内容必须非空,并且还必须通过此验证。我认为他们希望在控件包含某些内容时应用验证。
  • 我想在没有必填项的情况下进行此输入。
  • @Omer,我认为您的意思是您希望该字段是可选的。也就是说,仅当字段中有值时才应应用验证。我已经编辑了帖子以反映这一点,并投票决定重新开放。 (我想我上面的答案就是你所需要的)。

标签: php sql input required


【解决方案1】:

我假设 $temp2 来自 POST 值。您可以只检查它是否为空,如果不是要求它是正确的。否则,只需忽略它并且不记录错误。

if (!empty($temp2)) {
    if(!preg_match("%^(https?://)([a-z0-9-].?)+(:[0-9]+)?(/.*)?$%i", $temp2)){
        $this->class->obj['post_errors'] = 'no_image';
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 2019-12-04
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-22
    相关资源
    最近更新 更多