如何让Javascript识别电子邮件地址



我试图给一个文本字段一个对偶函数。因此,如果你在其中键入,比如说12345,它就会找到相关的数据。但是,如果你键入一个电子邮件地址,或者基本上任何带有XXX@XXX.XXX格式,我希望密码字段和按钮出现。我一直在尝试使用regex,但由于某种原因,它不起作用,而且所有内容都被识别为电子邮件,所以即使是12345也会打开登录内容。你能帮我吗?我试着把要点融入片段中。

function imgMain() {
var iDCode = document.getElementById("IDQuery").value;
var mail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
if (iDCode = mail) {
console.log("this is a mail");
document.getElementById("passwordDiv").style.display = "block";
document.getElementById("loginbuttonDiv").style.display = "block";
document.getElementById("SeeSlide").style.display = "none";
} else {
console.log("this is not a mail")
}
}
<div id="QueryField">
<input type="text" id="IDQuery" placeholder="ID Kode">
<div style="display: none" id=passwordDiv><input type="password" id="passwordfield"><br></div>
<div style="display: none" id=loginbuttonDiv><button id="login" onclick="login()">log ind</button><br></div>
<button id="SeeSlide" onclick="imgMain()">Se Slide</button><br>
<br><br><br><br>
</div>

user-mail.test((,使用类似的正则表达式

let mail = /^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/;
if(mail.test(iDCode)){
alert("Valid email is required")
}

您可以尝试这个版本,它基于w3resource。

function imgMain() {
var iDCode = document.getElementById("IDQuery").value;
var mailformat = /^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/;
if (iDCode.match(mailformat)) {
console.log("this is a mail");
document.getElementById("passwordDiv").style.display = "block";
document.getElementById("loginbuttonDiv").style.display = "block";
document.getElementById("SeeSlide").style.display = "none";
} else {
console.log("this is not a mail")
}
}
<div id="QueryField">
<input type="text" id="IDQuery" placeholder="ID Kode">
<div style="display: none" id=passwordDiv><input type="password" id="passwordfield"><br></div>
<div style="display: none" id=loginbuttonDiv><button id="login" onclick="login()">log ind</button><br></div>
<button id="SeeSlide" onclick="imgMain()">Se Slide</button><br>
<br><br><br><br>
</div>

if语句中,您有if (iDCode = mail)

mail的值重新分配给变量iDCode。因此if有效地变为if(mail),这总是真,因为RegEx对象是真的。

您应该使用mail.test(iDCode)iDCode.match(mail)检查输入是否与正则表达式匹配

几种不同的方式。你可以向该地址发送电子邮件,检查它是否会反弹,也可以使用PHP(我怀疑你是否想这样做,因为你的问题是JavaScript(发送电子邮件,然后让他们在网址上确认。老实说,PHP是最好的方法,但由于您使用的是JS,您可以从https://www.w3resource.com/javascript/form/email-validation.php:

function ValidateEmail(mail) {
if (/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/.test(myForm.emailAddr.value)) {
return (true)
}
alert("You have entered an invalid email address!")
return (false)
}

这是因为我们正在检查电子邮件地址中的所有无效字符。如果输入字段包含这些字符中的任何一个,则其无效。

试着在谷歌上搜索答案。有很多信息:https://www.google.com/search?rlz=1C1GCEB_enUS865US865&ei=OHyAg&q=javacscript+检查+电子邮件+地址&oq=javacscript+检查+电子邮件+地址&gs_l=psy-b.3.0i71l8.2549.3358.3533…0.2.0.0.0……..12…..1.gws wiz……23%3A11-12j24%3A11-2.1hEMZpGGmWs和amp;ved=0ahUKEwjnjr7N4vznAhWpJDQIHaH5AYkQ4dUDCAw&uact=5&安全=活动&ssui=在上

您可以尝试使用.validate函数。它对检查登录表单非常有效。该功能可能如下所示:

$("#IDQuery").validate({
rules: {
email:
{required: true, email: true},
password:
{required: true}
},
messages: {
email:
{required: 'Please enter a E-mail',
email: 'Please enter a valid E-mail'},
password:{required: 'Please enter a password'}
},
errorPlacement: function (error, element) {
error.insertAfter(element.parent());
}
});

相关内容

最新更新