处理字符串中的负数

jak*_*ine 0 javascript regex math

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

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

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

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

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

我怎么能避免这个?这可能是我在数学上遇到的一般问题.

Ano*_*on. 6

问题是你的函数不是将"-1"视为负数 - 它被视为连字符后跟正数1.

/(-?\d+)/g 也将捕获一个领先的连字符.