Razor视图中的Javascript Regex电子邮件验证

时间:2014-05-23 16:56:32

标签: javascript regex asp.net-mvc-3 email-validation

我正在尝试验证使用HTML帮助程序类创建的电子邮件输入。每次都正确调用'validateForm'方法,但if语句仍然失败。我的两个最好的理论是我的正则表达式,我找到了here,因为我不得不逃避'@'字符,或者我没有正确地比较它。

永远感谢!

使用Javascript:

function validateForm() {
    var isValid = true;
    var errorMessage = "";
    var emailRegExp = /^(([^<>()[\]\\.,;:\s@@\"]+(\.[^<>()[\]\\.,;:\s@@\"]+)*)|(\".+\"))@@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    var x = document.forms["Update"]["complaint.Responsible"].value;

    if (x === null || x === "" || !emailRegExp.test(x)) {
        errorMessage += "A valid 'Responsible' was not entered<br/>";
        document.getElementById("Responsible").style.borderColor = '#F00';
        alert("No! >:(");
        isValid = false;
    }

    return isValid;
}

表格CSHTML:

@Html.TextBoxFor(model => Model.complaint.Responsible, new { @Class = "txtLong" })

表单HTML:

<form name="Update" onsubmit="return validateForm()" method="post" id="formBody"  enctype="multipart/form-data">
     <input class="txtLong" id="complaint_Responsible" name="complaint.Responsible" type="text" value="sdbsv rszaer gse er">

更新

这就是为什么我不能使用单个'@'符号 enter image description here

(一行 - 代码中)

enter image description here

1 个答案:

答案 0 :(得分:0)

@@正在告诉正则表达式引擎您期望两个@符号。将其替换为以下图案:

var emailRegExp = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;