使用JavaScript进行电子邮件验证
可能重复:使用JavaScript进行电子邮件验证,javascript,Javascript,可能重复: 这是我的第一篇文章,我有一个小问题。我正在尝试验证表单上的电子邮件地址,但没有成功。我在网上找到了这个片段,但它似乎不起作用。我现在正在使用Javascript来验证它。我通常不使用JS,因此任何帮助都将不胜感激 <script type="text/javascript"> function ValidateEmail(inputText) { var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-
这是我的第一篇文章,我有一个小问题。我正在尝试验证表单上的电子邮件地址,但没有成功。我在网上找到了这个片段,但它似乎不起作用。我现在正在使用Javascript来验证它。我通常不使用JS,因此任何帮助都将不胜感激
<script type="text/javascript">
function ValidateEmail(inputText)
{
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(inputText.value.match(mailformat))
{
document.forms.emailform();
return true;
}
else
{
alert("You have entered an invalid email address!");
document.forms.emailform();
return false;
}
}
函数ValidateEmail(inputText)
{
var mailformat=/^\w+([\.-]?\w+*@\w+([\.-]?\w+*(\.\w{2,3})+$/;
if(inputText.value.match(mailformat))
{
document.forms.emailform();
返回true;
}
其他的
{
警报(“您输入的电子邮件地址无效!”);
document.forms.emailform();
返回false;
}
}
您必须在validateEmail之后添加括号才能调用它,否则它将假定您正在尝试返回一个方法。看看这个例子,说明如何在Javascript中执行此操作:
<html>
<head>
<script type="text/javascript">
<!--
function validateEmail() {
var emailText = document.getElementById('email').value;
var pattern = /^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$/;
if (pattern.test(emailText)) {
return true;
} else {
alert('Bad email address: ' + emailText);
return false;
}
}
window.onload = function() {
document.getElementById('email_form').onsubmit = validateEmail;
}
</script>
</head>
<body>
<form id="email_form">
<input type="text" id="email">
<input type="submit">
</form>
</body>
</html>
你所说的不工作是什么意思?您的表单是否未提交(当您调用document.forms.emailForm()
时可能有输入错误,这是无效的)?regex试图禁止一些完全有效且真实的电子邮件地址(其中包含+
的电子邮件地址,以及博物馆和信息TLD中的电子邮件地址).HTML5定义了一个新的输入type=“email”
。它具有属性pattern
,您可以在其中指定正则表达式。更多细节
onsubmit="return validateEmail()"
<html>
<head>
<script type="text/javascript">
<!--
function validateEmail() {
var emailText = document.getElementById('email').value;
var pattern = /^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$/;
if (pattern.test(emailText)) {
return true;
} else {
alert('Bad email address: ' + emailText);
return false;
}
}
window.onload = function() {
document.getElementById('email_form').onsubmit = validateEmail;
}
</script>
</head>
<body>
<form id="email_form">
<input type="text" id="email">
<input type="submit">
</form>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<form>
<input type="email" pattern="^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$">
<input type="submit">
</form>
</body>
</html>