我目前有这个PHP代码:
$pCode = $_POST["postcode"];
if (!empty($pCode)) {
$pCodePattern = "/^\d{4}$/";
if (!preg_match($pCodePattern, $pCode)) {
$pCodeMsg = "<span> post code must be 4 digits </span>";
}
}
当我运行代码时,仍会显示错误消息。
答案 0 :(得分:1)
您可以在没有任何正则表达式的情况下执行此操作
$pCode = $_POST["postcode"];
$len=1;
while ($pCode >= 10)
{
$pCode = ($pCode / 10);
++$len;
}
if($len != 4){
$pCodeMsg = "<span> post code must be 4 digits </span>";
}
答案 1 :(得分:0)
您需要指定\d{4}
模式可以是可选的:
$pCodePattern = "/^(?:\d{4})?$/";
^^^ ^^
请参阅regex demo
模式详细信息:
^
- 开始搅拌(?:
- 启动可选的非捕获组(?
量词匹配一次或零次)
\d{4}
- 4位数)?
- 可选非捕获组的结尾$
- 字符串结尾答案 2 :(得分:0)
$pCode = $_POST["postcode"];
if (!empty($pCode)) {
$pCodePattern = "^(\d{4}|\s*)$";
if (!preg_match($pCodePattern, $pCode)) {
$pCodeMsg = "<span> post code must be 4 digits </span>";
}
}