它很奇怪,但是当我在我的表单中填写2个字符时,它并没有发出错误。
以下是我的代码片段。
HTML代码
<div class="col-md-6">
<div class="form-group">
<label for="form_name">Name</label>
<input id="form_name" type="text" pattern="^[a-zA-Z]{1}[a-zA-Z\s]{1,}$"
name="name" class="form-control" placeholder="Your name"
required="required" data-error="Your name is required">
<div class="help-block with-errors"></div>
</div>
</div>
PHP代码
// Check name
if (!preg_match("/^[a-zA-Z]{1,}+[a-zA-Z[:space:]]{2,}$/", $_POST['name'])) {
$errors[] = 'Name';
}
它必须对preg_match
和/或正则表达式执行某些操作,我尝试删除{1}
但没有结果。 {1,}
也没有用。例如,当我输入 Jo 时,它不会发送或给出错误。当我在它后面放一个空格时,它就像一个魅力。
答案 0 :(得分:-1)
AbraCadaver回答了问题:
[a-zA-Z] {1,}表示1或更多且[a-zA-Z [:space:]] {2,}表示2或 更多。所以1 + 2 = 3所以你必须至少有3个字符才能匹配。