使用jquery pops错误在cshtml中验证电子邮件验证正则表达式

时间:2013-07-05 11:04:47

标签: jquery regex asp.net-mvc-4 razor

在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; }

   });
});

2 个答案:

答案 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})?$/