更改symfony2中的默认表单电子邮件类型regex

更改symfony2中的默认表单电子邮件类型regex,regex,forms,email,symfony,types,Regex,Forms,Email,Symfony,Types,使用Symfony 2.3.4。 当我创建一个表单,表单中有一个字段用于处理电子邮件时,我会使用默认的电子邮件类型: builder->add('email', 'email', array( 'label' => 'Email',)) 只有这样,它才能成功验证用户输入,而不是我想要的方式,这意味着: 工作原理: me --> notallowed me@gmail --> allowed 我需要它如何工作: me --&

使用Symfony 2.3.4。 当我创建一个表单,表单中有一个字段用于处理电子邮件时,我会使用默认的电子邮件类型:

builder->add('email', 'email', array(
                'label' => 'Email',))
只有这样,它才能成功验证用户输入,而不是我想要的方式,这意味着:

工作原理:

me --> notallowed       
me@gmail --> allowed
我需要它如何工作:

me --> notallowed
me@gmail --> notallowed
me@gmail.com --> allowed
总结:

我想我需要的是更改/自定义默认的正则表达式,以验证这一点,我想这是symfony中众多文件中的一个


感谢您提供的相关提示。实际上,您在这里看到的验证是基于浏览器的HTML5验证。如果输入了
me
,则弹出的消息直接来自您的浏览器,不涉及符号。我发现HTML5验证在很大程度上是不可靠的。最佳实践是在服务器端进行验证,并在客户端使用某种类型的javascript验证


有关设置服务器端验证的更多信息,请参阅,他们提供了一些非常有用的示例。

您可以通过javascript处理电子邮件验证。调用表单提交上的任何方法,如

function validate(){
  var email=$('#email').val();
  if(email!=""){
   var re =/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!re.test(email)) {
        alert('please Enter Valid email address');  

        }
    }

<form onSubmit="return validate();">
<input type="text" name="email" id="email" placeholder="Please Enter your Email address" />

</form>
函数验证(){
var email=$('#email').val();
如果(电子邮件!=“”){
变量re=/^([a-zA-Z0-9\.\-])+\@([a-zA-Z0-9\-])+)+([a-zA-Z0-9]{2,4})+$/;
如果(!重新测试(电子邮件)){
警报(“请输入有效的电子邮件地址”);
}
}

有关表单字段类型的电子邮件,请参阅以下链接

如果您想对电子邮件进行jquery验证

$('#formId').validate({
errorClass: 'help-block',
rules: {
    'textFieldName': {
        required: true,
        email: true
    }
},
messages: {
    'textFieldName': {
        email: "Invalid Email Address"
    }
},

highlight: function (element) {
    $(element).parent().parent().removeClass("success").addClass("error");
},

unhighlight: function (element) {
    $(element).parent().parent().removeClass("error").addClass("success");
}
});//证实