我在Php中使用消毒和验证过滤器,但我有一些问题要添加一些规则,我有一些Php的基本知识,所以我认为这个问题对你来说很容易。
if ($_POST['ccp_n'] != "") {
$ccp = filter_var($_POST['ccp_n'], FILTER_SANITIZE_NUMBER_INT);
if (!filter_var($ccp, FILTER_VALIDATE_INT)) {
$errors .= 'Insert a valid code.<br/>';
}
} else {
$errors .= 'Insert a code.<br/>';
}
我需要添加最小和最大字符数(14-15),我想接受这个字符(-或空格)。确切的序列是0000-0000-0000(最后四位数字也可以是5)
谢谢
您可以使用preg_match
并应用正则表达式
preg_match ( string $pattern , string $TestString)
详见此处
模式是问题所在。你需要详细定义什么是允许的。
例如,模式:
'~^'d{4}-'d{4}-'d{4,5}$~D'
将是从开始^
到结束$
的整个字符串。4位,连字符,4位,连字符,4 ~ 5位。
查看Regexr
更新:
我在末尾添加了D
修饰符,否则$
不仅匹配到字符串的末尾,而且还匹配到换行符之前作为字符串中的最后一个字符。关于php修饰符的详细信息,请参见此处
对preg_match()
使用正则表达式。或者,您也可以使用sscanf()
根据格式解析来自字符串的输入。