我正在尝试验证使用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">
更新
这就是为什么我不能使用单个'@'符号
(一行 - 代码中)
答案 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,}))$/;