在shtml页面中使用regex和jquery验证电子邮件文本框时,错误弹出显示正则表达式的问题,因为它在正则表达式中包含“@”。
$(document).ready(function() {
$('#btn-submit').click(function() {
$(".error").hide();
var hasError = false;
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; //"@" in regex is the issue
var emailaddressVal = $("#UserEmail").val();
if(emailaddressVal == '') {
$("#UserEmail").after('<span class="error">Enter email address.</span>');
hasError = true;
}
else if(!emailReg.test(emailaddressVal)) {
$("#UserEmail").after('<span class="error">Enter a valid email address.</span>');
hasError = true;
}
if(hasError == true) { return false; }
});
});
答案 0 :(得分:11)
@@
是MVC中的转义序列,它将呈现为@
var emailReg = /^([\w-\.]+@@([\w-]+\.)+[\w-]{2,4})?$/;
上述语句将呈现为
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
答案 1 :(得分:1)
使用utf-8代码而不是@
/^([\w-\.]+\u0040([\w-]+\.)+[\w-]{2,4})?$/