在Javascript中将电话字符串转换为整数

时间:2015-06-28 00:26:49

标签: javascript parseint

我试图通过使用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);
} 

2 个答案:

答案 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);
}