无法发送包含2个字符的输入

时间:2016-09-13 12:40:15

标签: php regex html5 forms

它很奇怪,但是当我在我的表单中填写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 时,它不会发送或给出错误。当我在它后面放一个空格时,它就像一个魅力。

1 个答案:

答案 0 :(得分:-1)

AbraCadaver回答了问题:

  

[a-zA-Z] {1,}表示1或更多且[a-zA-Z [:space:]] {2,}表示2或   更多。所以1 + 2 = 3所以你必须至少有3个字符才能匹配。