[英]Validate First and Last name (not using regular expression)
我需要在一個輸入框中驗證用戶輸入的名字和姓氏。 我必須確保它們僅使用字母,而不使用其他字符,並且使用大寫或小寫形式,例如:John Smith。 我可以找到很多使用正則表達式執行此操作的方法,但是該任務明確要求不要使用正則表達式。
即使有人將我指向可以自己找到此信息的地方。
謝謝
只需檢查每個字母,看看它是否有效。 因此,您將創建一個有效字符數組,然后確保每個字符都位於該數組中。
function validate_name(name) {
var alphabet = 'abcdefghijklmnopqrstuvwxyz';
alphabet = alphabet + ' ' + alphabet.toUpperCase();
alphabet = alphabet.split(''); //turn it into an array of letters.
for (i=0; i<name.length; i++) {
if (!~alphabet.indexOf(name.charAt(i)) { //!~ just turns -1 into true
return false;
}
}
return true;
}
我覺得,考慮到這個問題,最好使解決方案保持簡單。
請注意以下觀察:
"a" < "b"
和"A" < "B"
都為真。 "A"
轉換為"a"
然后,我們可以開始一個基本的C風格方法:
for (var i = 0; i < inp.lenth; i++) {
var ch = inp[ch];
if (ch == " ") .. // is space
if (ch >= "a" && ch <= "z") .. // lowercase English letter
..
當然,問題可能不僅僅在於確保字母全都位於{az,AZ,space}中。 考慮這些輸入-它們有效嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.