[英]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.