我嘗試驗證用戶獲取的名字、姓氏和電子郵件,如果有效則回傳 true,如果無效則回傳 false,然后要求用戶再次輸入,只要它無效。通過在 Javascript 中撰寫函式。對于名稱,只有字串、連字符和空格,對于電子郵件,只有字串、htphen、下劃線、@ 和點是有效的。
1-我怎樣才能擺脫“可接受”并使其回傳真/假?2-如何修改代碼以驗證電子郵件和名字,因為當我寫 @ 例如在名字中它接受時。
function validateText(text, validChares = "abcdefghijklmnopqrstuvwxyz -") {
let acceptable;
for (let t of text) {
acceptable = false;
for (let vc of validChares) {
if (t === vc) {
acceptable = true;
break;
}
}
if (!acceptable)
return false;
}
return true;
}
let validChars = "";
for (let i = 65; i <= 90; i )
validChars = String.fromCharCode(i);
for (let i = 97; i <= 122; i )
validChars = String.fromCharCode(i);
validChars = " @_-.";
//return validChars = " -";
let firstName = prompt("Enter your firstname");
if (validateText(firstName, validChars))
alert(`${firstName} is acceptable`);
else
alert(`${firstName} is not acceptable`);
while (!validateText(firstName)) {
firstName = prompt("Enter valid First Name:");
}
/**/
let lastName = prompt("Enter your lastname");
if (validateText(lastName, validChars))
alert(`${lastName} is acceptable`);
else
alert(`${lastName} is not acceptable`);
while (!validateText(lastName)) {
lastName = prompt("Enter valid Last Name:");
}
/**/
let email = prompt("Enter your email");
if (validateText(email, validChars))
alert(`${email} is acceptable`);
else
alert(`${email} is not acceptable`);
while (!validateText(email)) {
email = prompt("Enter valid Email:");
}
alert(`Registration data:\nName: ${firstName}\nSurname: ${lastName}\nEmail: ${email}`)
uj5u.com熱心網友回復:
您可以改為使用regex來測驗您的姓名和電子郵件
對于名字,
const onValidName = (val) => {
// name can contain
// CAPITAL ALPHABETS
// small alphabets
// whitespace
// hyphen
const nameRegex = /^[a-zA-Z- ]*$/
return nameRegex.test(val)
}
//it will log true if name is valid
console.log(onValidName(somename)
對于電子郵件驗證,您可以使用
const onValidEmail = (val) => {
// cheks for email is valid or not
const emailRegex = /^(([^<>()[\]\\.,;:\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 emailRegex.test(val)
}
//return true if email is valid
console.log(onValidEmail(some email))
您可以通過這種方式繼續向用戶詢問有效的姓名/電子郵件
let lastName = prompt("Enter your lastname");
if (onValidName(lastName))
alert(`${lastName} is acceptable`); //update UI or write in DB or do whatever you want
else{
alert(`${lastName} is not acceptable`); //or you can show error in UI
prompt("Enter your lastname"); //again ask for a valid name
}
其余 [name, email, etc] 的所有驗證都可以以相同的方式完成
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/520307.html
