【问题标题】:javascript parseInt to remove spaces from a stringjavascript parseInt 从字符串中删除空格
【发布时间】:2017-01-18 21:20:09
【问题描述】:

我有一个数字之间有空格的数据示例,但是我想返回不带空格的整数:

mynumber = parseInt("120 000", 10);
console.log(mynumber); // 120

我希望它返回120000。有人可以帮我解决这个问题吗? 谢谢

更新

问题是我在代码开头这样声明了我的变量:

var mynumber = Number.MIN_SAFE_INTEGER;

显然这会导致您提供的解决方案出现问题。

【问题讨论】:

  • 您是要输入parseInt('120 000', 10)吗?
  • @MikeC 是的,我更新了,抱歉。

标签: javascript parsing numbers parseint


【解决方案1】:

您可以在处理之前使用replace 删除字符串中的所有空格。

var input = '12 000';
// Replace all spaces with an empty string
var processed = input.replace(/ /g, '');
var output = parseInt(processed, 10);
console.log(output);

【讨论】:

  • 我更新了我的问题,我目前在整合您的回复时遇到问题。
  • @marcel 将Number.MIN_SAFE_INTEGER 分配给它不会导致任何问题。您可能只是将mynumber 重新分配给不同的值。请为您的问题创建一个 [最小、完整且可验证的示例](stackoverflow.com/help/mcve),我非常乐意帮助您解决它。如果您需要一些东西来帮助您快速解决问题,JSFiddle 非常适合这类事情。
【解决方案2】:
  1. 通过替换函数删除字符串中的所有空格。
  2. 使用+ 运算符将字符串转换为数字。

var mynumber = Number.MIN_SAFE_INTEGER;
mynumber = "120 000";
mynumber = mynumber.replace(" ", ""); 
console.log(+mynumber );

【讨论】:

  • 我更新了我的问题,我无法成功应用您的解决方案
  • Number.MIN_SAFE_INTEGER 常量表示 JavaScript 中的最小安全整数。如果您的 myNumber 被分配了该值,那么您为什么要再次将其转换为 number ?如果您将值从数字覆盖为字符串,那么它也应该可以工作。我根据您的评论更新了答案。
  • 问题是并非所有mynumber 的实例都有空间,所以这个解决方案在没有空间时会中断。那我该怎么办?
  • 哪个字符串值失败了?此解决方案适用于任何数字
【解决方案3】:

您可以使用替换功能替换所有空格

var mynumber = "120 000";
console.log(mynumber.replace(/ /g,''));

输出为 120000

【讨论】:

    【解决方案4】:

    就像玩 javascript :-)

    var number= '120 00'; 
    var s= '';
    number = parseInt(number.split(' ').join(s), 10);
    alert(number);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      • 2011-09-21
      • 2017-11-20
      相关资源
      最近更新 更多