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

7tofc5zh  于 2023-06-05  发布在  jQuery
关注(0)|答案(3)|浏览(98)

当在shtml页面中使用regex和jquery验证电子邮件文本框时,错误弹出,显示regex有问题,因为它在regex中包含“@”。

$(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; }

   });
});
ogq8wdun

ogq8wdun1#

@@是MVC中的转义序列,它将呈现为@

var emailReg = /^([\w-\.]+@@([\w-]+\.)+[\w-]{2,4})?$/;

上述语句将被呈现为

var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
vwkv1x7d

vwkv1x7d2#

使用utf-8代码代替@
/^([\w-\.]+\u0040([\w-]+\.)+[\w-]{2,4})?$/

ggazkfy8

ggazkfy83#

cshtml文件中的“@”有问题。我不得不用'@@'来代替。
下面的函数工作得很好…

function validateEmail(emailInput) {
    // Regex
    var emailReg = /^[\w-]+(\.[\w-]+)*@@([\w-]+\.)+[a-zA-Z]{2,7}$/;

    // Test
    return emailReg.test(emailInput);
}

相关问题