繁体   English   中英

使用charCodeAt的JavaScript电话号码验证

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM