如何在字符串中的连字符后提取并获取数字值?
这是输入字符串:
var x = "-2147467259"
经过一些处理....返回:
alert(2147467259)
我如何做到这一点?
答案 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 functions和number manipulation,以及检查JavaScript's Math object以了解解决问题时可以使用的工具。
答案 1 :(得分:0)
怎么样:
Math.abs(parseInt("-2147467259"))
或
"-2147467259".replace('-','')
或
"-2147467259".replace(/\-/,'')
#1选项将字符串转换为数字。 #2方法是从字符串和#3选项中删除所有
-
,即使在此示例中没有必要使用正则表达式,但我想显示在替换情况下使用RegEx的可能性。
如果您需要一个数字作为最终值#1是您的选择,如果您需要字符串#2是您的选择。