我有一些验证电子邮件的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',
}
});
答案 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"