본문 바로가기

Tutorial

[expression] 숫자로된 문자열을 활용가능한 숫자로 변환

반응형

-----------------------------

ovcos 2016. 6. 22. 18:26 작성함

 

a=eval(thisComp.layer("A").text.sourceText).toString()*1;

b=eval(thisComp.layer("B").text.sourceText).toString()*1;

"차이\n" + length(a,b)

 

숫자로만 이뤄져 있는 텍스트 소스를 숫자로 변환한 뒤 계산할 수 있게 하는 식.

 

\n 은 줄바꿈ㅋ

 

---- 2020.01.30 추가 ----

 

1.

eval() 은 문자열을 코드로 인식하게 하는 함수.

eval( '2+2' ) 는 문자열 ' 2+2 ' 가 아니라 두 숫자의 수식의 결과값인 4 를 반환한다

 

2.

문자열로 된 숫자를, "진짜 숫자"로 만드는 방법 중 쉬운 방법으로는 그 문자열에 곱하기 1을 하면 숫자로 변한다고 함. 해보니 진짜 바뀜

 

 

3.

parseInt() 함수로 정수(int)로 변환할 수 있고, parseFloat() 함수로 실수로 변환해 줄 수 있다고 함. 역시 바뀜

 

 

... 저기 텍스트레이어 A,B 의 소스텍스트에있는 숫자는 

어찌되었든 문자열로 반환되게 되어있지만 eval() 함수로 인해 숫자열로 바뀌었다. 

 

근데 이 상태로도 이미 숫자화 되어있는데 뒤에 toString() 을 왜 붙였는지 모르겠다. 다시 *1 을 해줘서 숫자열로 바꾸는 과정이 필요했나?

왜 그랬지?

그냥 복붙하다보니 왜 그랬는지 지금도 잘 모르겠다..

 

위의 식은 문자열로 반환되는 '숫자' 를 숫자열로 변환하는 과정이지만

아래는 문자와 숫자가 혼합되어있는 문자열에서 '숫자' 만 추출하고 나열된 숫자를 그대로 숫자열로 사용하는 방식이다.

 

 

str = "문자열에서 숫자만 추출해 숫자열로 활용, 여기서는 100을 입력해 보자";   // 문자열
str = str.replace(/[^0-9]/g,"");   // 문자열에서 0~9 의 숫자만 추출 
Number(str)    // 추출된 숫자를 나열하고 숫자열로 바꿈

 

 

반응형