[英]JavaScript phone number validation using charCodeAt
我想使用JavaScript验证电话号码输入,以仅允许输入数字。 我不想使用正则表达式,所以我写了一个这样的函数:
function numberTest(){
for(var i=0;i<phone_number.length;i++){
if(phone_number.charCodeAt(i) >= 48 && phone_number.charCodeAt(i) <=57){
return true;
}else{
return false;
}
}
}
但是,它不起作用。 有什么想法吗?
这不起作用,因为它在第一个有效字符之后返回true
。 任何一个分支都不会超过第一个字符,因此,仅当找到无效字符时才需要return
。 否则,如果到达末尾而没有找到无效字符,则最终可以return true
。
就像是:
function numberTest(phone_number) { for (var i = 0; i < phone_number.length; i++) { if (phone_number.charCodeAt(i) < 48 && phone_number.charCodeAt(i) > 57) { return false; } } return true; } // Test various values var testData = ["1234", "12ab", "123451234512345", "a1234123", "123123123a"]; var output = document.getElementById("results"); testData.forEach(function(test) { var next = document.createElement("li"); next.textContent = numberTest(test); });
<ul id="results"></ul>
isNaN()
(表示不是数字 )方法将以更简单的方式为您提供还原的结果...
var phone_number = "5511112223"; alert(isNaN(phone_number)); //returns false meaning it is a valid number phone_number = "55aa1g11d12223"; alert(isNaN(phone_number)); //returns true meaning it is not a number
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.