信! '警告preg_match():没有结束分隔符' ^'发现于E:\ wamp \ form_elements ...
if(!preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo "Invalid email form Please reenter<br />";}
任何建议。我的意思是,如果我不是新手,也许我可以解决这个问题,但xq是因为我的懒惰。
先谢谢你。
答案 0 :(得分:1)
您的模式需要有一个起始和结束分隔符(在本例中我使用了~
),请参阅preg_match
:
preg_match("~^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$~", $email);
分隔符用于标记开头和&amp;模式的结束。在结束分隔符之后,您可以添加修饰符,例如不区分大小写(i
):
$pattern = '~^[a-z]{3,6}$~i';
答案 1 :(得分:1)
PCRE表达式需要转义才能由preg_ *函数系列处理。分隔符可以是任何非字母数字,非反斜杠,非空白字符。您可以在结束分隔符后添加特定的modifiers来更改表达式结果。
Php特定文档位于here。
PHP有更好的方法来验证电子邮件。取自filter_var的官方文档:
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
答案 2 :(得分:0)
您需要一个开始和结束分隔符来包装正则表达式的定义。按照惯例,在任何一端使用正斜杠,如果可能的话,你应该坚持这个惯例。唯一的例外是如果你的正则表达式包含正斜杠,在这种情况下使用另一个字符分隔符可以帮助使它更具可读性和更少麻烦。在这种情况下,您的陈述应如下所示:
if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/", $email)) {
echo "Invalid email form Please reenter<br />";}