Razer视图中的Javascript正则表达式电子邮件验证
我正在尝试验证使用HTML助手类创建的电子邮件输入。每次都正确调用“validateForm”方法,但if语句始终失败。我的两个最好的理论是,我发现我的正则表达式关闭了,因为我必须避开“@”字符,或者我没有正确地比较它 永远谢谢你 Javascript:Razer视图中的Javascript正则表达式电子邮件验证,javascript,regex,asp.net-mvc-3,email-validation,Javascript,Regex,Asp.net Mvc 3,Email Validation,我正在尝试验证使用HTML助手类创建的电子邮件输入。每次都正确调用“validateForm”方法,但if语句始终失败。我的两个最好的理论是,我发现我的正则表达式关闭了,因为我必须避开“@”字符,或者我没有正确地比较它 永远谢谢你 Javascript: function validateForm() { var isValid = true; var errorMessage = ""; var emailRegExp = /^(([^<>()[\]\\.,
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;
}
表格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">
更新:
这就是我不能使用单个“@”符号的原因
(一行-如代码中所示)
该
@
告诉正则表达式引擎,您需要两个@
符号。将其替换为以下模式:
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-emailRegExp=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]}.[1,3}.[0-9]+[1,3}.];
我不能使用一个“@”符号,因为Razer view引擎或我不太确定的MVC将任何“@”符号视为C#服务器端代码的开头。请看我在更新中添加的图像。哦,很好。在这种情况下,您可以将JavaScript放在一个单独的JS文件中,然后使用SCRIPT
标记引用它吗?这是一个聪明的主意!谢谢我想知道是否有办法将C#'@'字符转换为javascript'@'字符?也许是JSON之类的。
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,}))$/;