检测用户是否正在使用javascript或jquery键入电子邮件或号码



如何检测用户是否正在键入电话号码或电子邮件地址,就像用户从前三个输入中键入的一样。

我正在为我的公司创建登录系统

当用户自动输入时,我需要这个来格式化用户的电话号码。

PS:我已经知道如何按照我想要的格式进行格式化

值得注意的是:电子邮件也可能进来44566@example.com或334-333@example.com我该如何检测。

是否可能

假设我有

<input type="text" placeholder="Phone number or Email" id="number_or_email" onkeyup="fire_after_first_three()">
function fire_after_first_three(){
//do number formatting on the go or ignore user input if email
}

用户可以使用电话号码或电子邮件地址登录。

用户的预期输入是:对于电话号码XXXXXXXXXX,我将其格式化为XXXX-XXXX-XXXX或电子邮件xxx@example.com在后端进行检查。

我需要知道用户输入,这样,如果用户决定使用电话号码登录,我就可以实时格式化电话号码。

我把电话号码的长度取为11。一旦用户开始插入输入,您就可以在我开始时验证after3输入。

function validateEmail(email) {
const 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(String(email).toLowerCase());
}
function validateOnlyNumbers(phone) {
return phone.match(/^d+$/);
}
const input = document.querySelector("input");
const h1 = document.querySelector("h1");
input.addEventListener("keyup", e => {
const value = e.target.value;
if (validateOnlyNumbers(value)) {
if (value.length === 11) {
h1.textContent = "Phone Number"
// Format input acc to phone no
} else {
h1.textContent = "could be Phone Number"
}
} else {
if (validateEmail(value)) {
h1.textContent = "Email"
// Format input acc to Email
} else {
h1.textContent = "could be Email"
}
}
})
<input type="text" />
<h1></h1>

最新更新