要验证输入日期,无论是表单 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/