2009-12-06 4 views
0

나는 간단하지만 복잡한 문제가 Math에 있습니다.문자열의 음수 처리

다음 코드는 문자열 (보통 span 또는 div에 포함)에서 숫자를 가져 와서 1의 값을 뺍니다.

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

이것은 우리가 영하 얻을 경우를 제외하고, 정말 잘 작동합니다. -1에 도달하면 분명히 음수 뺄셈을 처리합니다.

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

어떻게이 문제를 방지 할 수 있습니까? 여기 수학에 일반적인 문제가있을 것 같습니다. 그것뿐만 아니라 선도적 인 하이픈을 사로 잡을 것입니다 긍정적 인 1.

/(-?\d+)/g 다음 하이픈으로 치료를 받고 있어요 -

답변

6

문제는 함수가 처리되지 않도록 "-1"부정적이다.

2

.replace(/(\d+)/g)은 (는) -을 캡처하지 않습니다. 추가 정보를 올바르게 입력하려면 /(-?\d+)/과 같은 것이 필요합니다.