【问题标题】:PHP Validation String Does Not Contain List Of ValuesPHP 验证字符串不包含值列表
【发布时间】:2014-07-29 08:50:42
【问题描述】:

例如我可能会:

$exclude_values = ['/','.'];
$check_string = 'asdf/';
$return = 'VALID';
foreach($exclude_values as $value)
{
  if(strpos($value,$check_string) != FALSE)
  {
   $return = 'INVALID';
  }
}

return $return;

有没有更好的方法来做到这一点? 我已经看到了对堆栈进行单次检查的示例,而不是多个值

【问题讨论】:

  • 你可以在 IF 语句中返回 invalid,跳过一些迭代
  • 是的,所以不是 $return = 'INVALID' 它会返回 FALSE 或其他什么。
  • 返回布尔值肯定比返回字符串键好:)
  • 对,这是为可视化而不是生产而编写的;)

标签: php validation


【解决方案1】:

我不推荐multibytePCRE lib 之外的任何字符串搜索功能,因为它们并不总是兼容utf-8,迟早会出现奇怪的错误。

在您的情况下,正则表达式是一个更好的解决方案:

return !preg_match('%[/\.]%usD', $check_string);

【讨论】:

猜你喜欢
  • 2021-05-04
  • 2011-05-16
  • 2012-09-07
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多