php - FILTER_VALIDATE 与 Preg_match。使用哪一个?

标签 php validation filter filtering w3c

要验证输入日期,无论是表单 URL 还是来自表单,您通常使用哪种技术?

我一直在看PHP Filters但我很少在任何代码中看到它们。

我平时看到过preg_mach的用法,例如:

$numbers = "/^[0-9]+$/D";

if (preg_match($numbers, $var)){
    echo "is number";
}

代替:

if(!filter_var($var, FILTER_VALIDATE_INT))
    echo "is number";
}

使用一个或另一个有什么好处吗? 谢谢!

最佳答案

我的两分钱:视情况而定。

这取决于您是否应该在正则表达式上使用过滤函数的情况。其实,标准很简单:

是否存在 filter_* 函数可以完全验证我期望的输入类型?

  • 如果是这样,请使用该 filter_* 函数。
  • 否则,使用正则表达式。

正则表达式比 filter_* 函数更复杂,但是 filter_* 的功能和正则表达式的相关性非常松散。最有可能的是,可以设计一个正则表达式来完成 filter_* 函数的工作,但反之则不行。因此,正则表达式为表格带来了更多的功能和灵 active ,同时也变得更加复杂。

就个人而言,在处理简单输入(整数、日期、时间)时,我使用 filter_* 函数,而更复杂的输入或非常具体或自定义的输入(应该开始和结束的自定义标识符带有一个字母并且中间有 3 个数字)更适合正则表达式。

关于php - FILTER_VALIDATE 与 Preg_match。使用哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11568593/

相关文章:

php - 如何计算数字的百分比?

php - 构建PM系统

c# - 有更好的方法来处理用户输入验证吗?

javascript - 屏蔽和 AJAX 请求

css - 如何防止IE过滤器遮盖背景图片

PHP MySQL 无法解释的空值 - 如何在一条记录中插入所有值?

javascript - 如何在图表 js 图表中使用 php 变量

javascript - 表单验证 - 电子邮件/电话号码

string - Scheme - 带过滤器的列表函数

ios - iOS中如何给图片添加特效?