2014-01-28 8 views
57

숫자 문자열 '5'String을 Int로 해석하는 방법은 무엇입니까?

var num_str = '5'; 

하는 방법으로 parseInt과 동시에 정답 이하로 할 수 있습니까?

{{num_str + 1}} // 6 
{{num_str - 1}} // 4 

으로 parseInt가

{{num_str - 1 | number}} 

사람이 유용한 제안이있는 경우,

{{parseInt(num_str) - 1}}  

수 필터 추가 및 빼기 할 수없는, 각도 표현을 사용할 수 없습니다, 그럴 게요 매우 고맙습니다.

+2

사용자 정의 필터가 필요한 것처럼 들리 겠지만 입력을 받아서 출력을 반환하는 함수를 작성하는 것은 상당히 쉽습니다. – shaunhusain

답변

75

컨트롤러에서 :

$scope.num_str = parseInt(num_str, 10); // parseInt with radix 
+7

javascript에서 항상 parseInt의 기수를 지정하십시오. http://stackoverflow.com/questions/850341/how-do-i-work-around-javascripts-parseint-octal-behavior –

5

당신이 번호를 구문 분석하는 자바 스크립트 Number 방법을 사용할 수 있습니다,

var num=Number (num_str); 
+0

아래쪽 화살표는 angularjs에 대한 토론이므로, 순수한 자바 스크립트가 아닙니다. –

47

당신이 시도 할 수 :

{{ 1 * num_str + 1 }} 

http://jsfiddle.net/Z32fP/

+5

작은 코드를 실제 코드베이스에 추가하지 마십시오. – AlienWebguy

+0

숫자가 1000이고 문자열에 쉼표가있는 경우에는 작동하지 않습니다. 이것은 1000이 아니라 1000이 될 수 있습니다. – discodane

77

내가 각도 필터를 사용하는 것을 선호합니다.

app.filter('num', function() { 
    return function(input) { 
     return parseInt(input, 10); 
    }; 
}); 

다음은 DOM이를 사용할 수 있습니다

다음
{{'10'|num}} 

fiddle이다.

희망이 도움이되었습니다!

+2

유용하고 AngularJs 방식입니다. 감사! –

+1

아주 좋은 해결책! – Ken

+0

질문에 +1하거나 -1로 표시하려면 작동하지 않습니다. –

0

게다가 {{1 * num_str + 1}} 당신은이 (마이너스 첫번째)과 같은 시도 할 수 있습니다 :

{{ num_str - 0 + 1}} 

을하지만 그것이 num_str이 문자를 포함하는 경우, 그것은 실패, 매우 깨지기입니다. @hassassin이 말한 것처럼 필터를 작성하거나 데이터를 시작한 직후에 데이터를 전처리해야합니다.

22

또 다른 옵션은 다음과 같습니다 당신이 원하는 것처럼

$scope.parseInt = parseInt; 

그런 다음이 작업을 수행 할 수 있습니다 :

각 표현은 scope 때문에, window에 액세스 할 수 없습니다 때문입니다
{{parseInt(num_str)-1}} 

.

또한, 숫자 필터, 괄호 안에 표현식을 포장하는 것은 작동 : 위의

{{(num_str-1) | number}} 

DEMO

+1

각도의 내장 | 숫자 필터는 대부분의 경우에 사용할 수있는 방법입니다. –

8

아무도 나를 위해 일하지 않는다.

는하지만이 한 :

{{ (num1_str * 1) + (num2_str * 1) }} 
0

나는 위에서 언급 한 솔루션을 시도하고 그들 중 누구도 나를 위해 일하지 않는다. 나는 JSON.parse를 사용하고는했다 :

$http.get('/api/getAdPolling') 
    .success(function (data) { 
    console.log('success: ' + data.length); 

    if (JSON.stringify(data) != "not found") { 
     $scope.adPoll = JSON.parse(data); 
    } 
}) 
    .error(function (data) { 
    console.log('Error: ' + data); 
}); 
8
{{ num_str - 0 }} 

이 ... 나를 위해 작동합니다.

+0

Genius 솔루션. num_str = ''Null 문자열 인 경우 여전히 작동합니다. 나는 NaN을 얻지 만 굉장하다고 생각했습니다! – Oliver

관련 문제