大家好:
我正在尝试使用以下格式使用jQuery验证电子邮件:
[姓名] _ [姓氏] @ company.com (始终以'company.com'结尾)
以下是代码示例:
HTML:
<body>
<form onSubmit='validate(); return false;'>
<p>Enter an email address:</p>
<input id='email'>
<button type='submit' id='validate'>Validate!</button>
</form>
<br/>
<h2 id='result'></h2>
<script>
CSS:
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
JS:
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@(usmp.pe)$/;
return re.test(email);
}
function validate(){
$("#result").text("");
var email = $("#email").val();
if (validateEmail(email)) {
$("#result").text(email + " is valid :)");
$("#result").css("color", "green");
} else {
$("#result").text(email + " is not valid :(");
$("#result").css("color", "red");
}
return false;
}
$("form").bind("submit", validate);
我正在使用以下jsFiddle
通过此示例,我可以验证以“company.com”结尾的电子邮件,但我无法弄清楚如何在名称和姓氏之间的“@”之前验证带有“_”符号的电子邮件。有什么想法吗?
谢谢!
答案 0 :(得分:1)
您只需在您的名字正则表达式后面添加一个破折号,然后再次复制它以获取姓氏。
它应该是这样的:
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))_(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@(company.com)$/;
如果您使用此行替换代码,它应该可以正常工作。
(编辑:将短划线更改为下划线)