获取字符串中连字符后面的数值

时间:2014-06-02 01:41:36

标签: javascript string

如何在字符串中的连字符后提取并获取数字值?

这是输入字符串:

var x = "-2147467259"

经过一些处理....返回:

alert(2147467259)

我如何做到这一点?

2 个答案:

答案 0 :(得分:1)

你可以replace取消连字符:

alert(+x.replace("-", ""));

是的,+很重要。它将字符串转换为数字;因此,您可以通过将其替换为空来删除hypen,然后将该操作的结果基本上转换为数字。如果不存在连字符,此操作也将起作用。

您也可以使用substr来实现这一目标:

alert(+x.substr(1));

您还可以使用parseInt将字符串转换为数字(如果连字符是有效的话,最终将为负数),然后找到其绝对值:

alert(Math.abs(parseInt(x, 10));

Bergi 注意,如果您可以确定字符串中的第一个字符始终是连字符,则可以简单地返回其否定值,默认情况下会将值转换为数字然后对它执行否定操作:

alert(-x);

您还可以通过第三级运算符检查数字是负数还是正数,然后对其执行相应的操作以确保它是正数:

x = x >= 0 ? +x : -x;

这在性能方面可能比使用Math.abs更便宜,但无论如何差异都是微不足道的。

正如您所看到的,实际上有很多方法可以实现这一目标。我建议您一般阅读JavaScript string functionsnumber manipulation,以及检查JavaScript's Math object以了解解决问题时可以使用的工具。

答案 1 :(得分:0)

怎么样:

  1. Math.abs(parseInt("-2147467259"))
    1. "-2147467259".replace('-','')
      1. "-2147467259".replace(/\-/,'')
      2.   

        #1选项将字符串转换为数字。 #2方法是从字符串和#3选项中删除所有-,即使在此示例中没有必要使用正则表达式,但我想显示在替换情况下使用RegEx的可能性。

        如果您需要一个数字作为最终值#1是您的选择,如果您需要字符串#2是您的选择。