我试图通过使用parseInt将电话号码字符串转换为整数,但只返回前3位数,然后我想添加每个电话号码的所有整数。这是我的代码:
var largest_phone_number = [];
largest_phone_number.push("415-215-2561", "312-367-6721", "345-876-5467");
for(var i=0; i<largest_phone_number.length; i++) {
var number = parseInt(largest_phone_number[i]);
console.log(number);
}
答案 0 :(得分:4)
因为parseInt
将转换为第一个不可转换的字符,因此会转换为3位数。您可以首先使用正则表达式删除非数字,然后执行parseInt
。不要忘记parseInt
的基数。你不想以八进制结束。
var phoneNumbers = largest_phone_number.map(function(number){
return parseInt(number.replace(/[^0-9]/g, ''), 10);
});
// [4152152561, 3123676721, 3458765467]
电话号码的一些提示:
有区号以0
开头的电话号码。 parseInt
将忽略前导零。基本上,你只是丢失了信息。
有些电话号码包含这些符号+()-
以及空格。它们在世界不同地区会有所不同。
最好将电话号码保留为字符串。为什么?请参阅项目符号1和2.
答案 1 :(得分:0)
您可以先删除短划线
var largest_phone_number = [];
largest_phone_number.push("415-215-2561", "312-367-6721", "345-876-5467");
for(var i=0; i<largest_phone_number.length; i++) {
var number = parseInt(largest_phone_number[i].replace(/-/g,''));
console.log(number);
}