【发布时间】:2016-09-13 12:40:15
【问题描述】:
这很奇怪,但是当我在表单中填写 2 个字符时,它既不会发送错误,也不会出错。
这是我的代码的 sn-p。
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 时,它不会发送或给出错误。当我在它后面加一个空格时,它就像一个魅力。
【问题讨论】:
-
[a-zA-Z]{1,}状态 1 或更多和[a-zA-Z[:space:]]{2,}状态 2 或更多。所以 1 + 2 = 3 所以你必须至少有 3 个字符才能匹配。 -
^^^ 可能是这个,但你的问题很不清楚,...既不发送是什么意思,如果有错误,你甚至在哪里显示错误?
-
我认为您应该删除空格字符
\s并且正则表达式应该使用 2 个或更多字符 -
@AbraCadaver 哈哈,我就知道会这么简单。谢谢!
-
请将问题更改为已回答状态:)