javascript电子邮件验证以允许空间

时间:2015-11-27 23:43:24

标签: javascript

我有一些验证电子邮件的JavaScript,但是如果他们在电子邮件地址的末尾放置一个空格并且没有意识到,那么有些客户会遇到问题。我在stackoverflow上查找了其他解决方案并尝试使用

$.trim($(element).valid()); 

但它不起作用。以下是我在下面使用的代码: -

            <script type="text/javascript">
            $('#form1').validate({
                onfocusout: function (element) {
                   $(element).valid();
                },
                rules: {
                    FirstName: 'required',
                    SecondName: 'required',
                    Email: {
                            required: true,
                            email: true
                        },
                    reEmail: {
                            required: true,
                            email: true,
                            equalTo: "#Email"
                        },
                    address: 'required',
                    Town: 'required',
                    County: 'required',
                    Phone: 'required',
                    Mobile: 'required',
                    reMobile: {
                            required: true,
                            equalTo: "#Mobile"
                        },
                },
                messages: {
                    FirstName: 'Please enter your firstname',
                    SecondName: 'Please enter your secondname',
                    Email: 'Please enter a valid email address',
                    reEmail: 'Email addresses do not match, please retype email address again',
                    address: 'Please enter address',
                    Town: 'Please enter town',
                    County: 'Please select county',
                    Phone: 'Please enter phone number',
                    Mobile: 'Please enter mobile number',
                    reMobile: 'Mobile numbers do not match, please retype mobile number again',
                }
            });

1 个答案:

答案 0 :(得分:1)

您不应使用Regex验证电子邮件。

David Celis在他的blog

中提到了这一点
  

RFC的第3.2.4和3.4.1节涉及如何格式化电子邮件地址的要求,而且,当涉及引号或反斜杠时,您在电子邮件地址中无法做多少。本地字符串(@之前的电子邮件地址部分)可以包含以下任何字符: $&amp; * - = ^`| 〜#%'+ /? _ {}

     但是猜猜怎么着?如果你通过用引号括起它来逃避它,你几乎可以使用你想要的任何字符。例如,“查看所有这些空格!”@ example.com是一个有效的电子邮件地址。好的。

因此,相当多,电子邮件有效的唯一真正要求是@符号。

相反,您应该向他们发送确认电子邮件。

如果您需要删除字符串末尾的空格,请使用trim(),但请记住电子邮件有时包含空格

" test ".trim()                 //=> "test"
"     test        ".trim()      //=> "test"
" trim() is pretty cool".trim() //=> "trim() is pretty cool"