如果输入的字符串是否为电子邮件格式,我想进行修改。我有点困惑。我试着写下面的代码,但失败了。你能不能帮助我。
Javascript Code:
<script>
function emailValidation(id)
{
var emailPattern = var emailPattern = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
if (emailPattern.test(id) === false)
{
alert("not a valid email address.");
}
document.getElementById(id).value = "";
}
</script>
HTML Code:
<input type="text" id="empemail" onblur="emailValidation('empemail')" name="email" placeholder="eg: aaa@abc.ca" required="">
答案 0 :(得分:1)
您还可以使用HTML5通过将类型更改为email
来验证您的电子邮件输入字段:
<input type="email" name="email">
如果您不想使用HTML5并依赖javascript,可以使用this thread作为@springrolls建议。您的javascript代码中也有错误:
var emailPattern = var emailPattern = ...
您也没有正确传递输入字段中的值。这就是为什么你的函数总是返回false的原因。试试这个jsfiddle:
function emailValidation(id)
{
var emailPattern = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var email = document.getElementById(id).value
if (emailPattern.test(email) === false)
{
alert("not a valid email address.");
}
}
另外,请不要忘记检查电子邮件输入服务器端。如果您使用的是PHP,可以使用以下内容:
$email = $_POST["email"];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error = "Invalid email format";
}
答案 1 :(得分:0)
尝试这种模式。
var emailPattern = /[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i;
测试模式
答案 2 :(得分:0)
您还可以通过在输入字段中添加type =“email”来使用HTML5验证 例如:
<!DOCTYPE HTML>
<html>
<head>
<title>Test Email Submit</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<form action="/submitForm">
Email:<br>
<input type="email" name="email"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
答案 3 :(得分:0)
function isValidEmail(email) {
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email)) {
return false;
}
return true;
}
如果电子邮件有效,则返回true,否则返回false