我正在尝试验证我网站上的电子邮件地址,并且我一直在尝试编写一个关于电子邮件验证如何与JavaScript一起使用的演示。我要做的是将用户输入的电子邮件地址的值传递给validateEmail函数,然后在div中打印出'valid'或'invalid',其id为'result'。因为我对JavaScript比较陌生,所以我不知道如何实现这个目标,并且想知道是否有人可以向我展示如何做到这一点的一个例子?
<head>
<title>Practice</title>
<script type="text/javascript">
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\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,}))$/;
return re.test(email);
}
</script>
</head>
<body>
<form action="post" method="practice.php">
e-mail: <input id="email" type="text" onblur="validateEmail(execute(document.getElementById('email').value))" />
<div id="result"></div>
</form>
</body>
答案 0 :(得分:1)
首先,您不需要使用execute
方法,可以从value
上下文获取this
:
validateEmail( this.value )
然后修改您的功能以打印结果:
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\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,}))$/;
if(re.test(email)) {
document.getElementById('result').innerHTML = 'valid';
} else {
document.getElementById('result').innerHTML = 'invalid';
}
}