我在“名称”表单字段中添加了一些非常基本的验证。一般来说,实际验证名称是不可能的,但我想我至少可以验证它不是空的,大于2个字符(Al是我能想到的最短名称),而且这些字符不仅仅是空格
这是我正在使用的条件:
// Check length of name field
if(!isset($name) || $name < 2 || (strlen($name) > 0 && strlen(trim($name)) == 0)) {
// Name field only spaces
if((strlen($name) > 0 && strlen(trim($name)) == 0) || trim($name) == '') {
$errors['name'] = "Please enter a real name...";
}
// Name too short
else {
$errors['name'] = "Are you sure <strong>".htmlspecialchars($name)."</strong> is your name?";
}
$msg_type = "error";
}
但是,当我使用有效名称运行时,我收到“名称太短”错误。我知道如何将条件组合起来是一个问题,但我无法弄清楚问题所在。
答案 0 :(得分:2)
$name < 2
不起作用。您正在尝试使用strlen($name) < 2
。
答案 1 :(得分:2)
嗯,有一个名为正则表达式的工具,人们为字符串匹配发明了它,它可以非常方便地用于像你这样的验证案例。如果你想验证一个单词,假设至少有2个字符的长度,你可以执行以下操作:
if(!preg_match('/\b\w{2,}/', $name)) {
$errors['name'] = "Are you sure <strong>".htmlspecialchars($name)."</strong> is your name?";
}
其中: \ b:字边界 \ w:字符 {2,}:字符
的两次或多次