【问题标题】:Dealing with Negative Numbers in Strings处理字符串中的负数
【发布时间】:2009-12-07 05:16:41
【问题描述】:

我有一个简单但令人困惑的数学问题。

以下代码将从字符串(通常包含在 span 或 div 中)中获取一个数字,然后从中减去 1 的值。

.replace(/(\d+)/g, function(a,n){ return (+n-1); });

这非常有效,除非我们低于零。一旦我们得到 -1,我们显然是在处理负减法。

-1 - 1 = -0
-0 - 1 = --1

我怎样才能避免这种情况?很可能我在这里的数学有一个普遍的问题。

【问题讨论】:

    标签: javascript regex math


    【解决方案1】:

    问题在于您的函数没有将“-1”视为负数 - 它被视为连字符后跟正数 1。

    /(-?\d+)/g 也会捕获前导连字符。

    【讨论】:

      【解决方案2】:

      您的.replace(/(\d+)/g) 未捕获前导-。 如果你希望你的添加是正确的,你需要像/(-?\d+)/ 这样的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-22
        • 2016-04-28
        相关资源
        最近更新 更多