본문 바로가기

모바일&IT/개발관련자료

자바스크립트 (숫자 - 문자) 변환 [출처] 자바스크립트 (숫자 - 문자) 변환|작성자 JustinYJ

SMALL

아래 예제는 기수 인수를 가진 toString 메서드의 사용법을 보여줍니다. 아래 함수의 반환값은 기수 변환 표입니다.

parseInt("123.8888") = 123 (문자형숫자를 정수로 변환) 또는 더 간단하게 
var XX = "123"; XX -= 0; 
   이제 XX의 값은 숫자 123(백이십삼)이 됩니다. 단, 여기서 숫자로만 구성된 숫자 문자열 이어야 합니다.

parseFloat("123.8888") = 123.8888 (문자형숫자를 실수로 변환)

parseInt("11",2) = 3 
parseInt("11",10) = 11 
parseInt("11.8",16) = 17 

x=11;(숫자를 진법으로 변환) 
x.toString(10) = 11 (숫자x를 10진법으로 변환)
x.toString(2) = 1011 (숫자x를 2진법으로 변환)
x.toString(16) = b (숫자x를 16진법으로 변환)


parseInt() 함수

parseInt() 함수는 문자열을 정수로 변환시켜주는 함수입니다. 얼핏보기에는 eval() 함수나 Number() 함수와 비슷해 보이지만, parseInt() 함수는 매개변수를 이용하여 8진수, 16진수 등의 수로도 변환이 가능하며, 숫자형과 문자형이 혼합된 문자열에서 숫자형 뒤에오는 문자형은 0을 반환하여 숫자만 출력 시켜 줍니다.

또, 소수인 경우에는 소숫점 이하를 버리고 정수만 반환합니다.

형식은 다음과 같습니다.

parseInt(숫자형문자열,[진수])

위의 형식에서 [진수] 부분을 생략하면 보통의 10진수로 반환됩니다.

구체적으로 예문을 보며 알아볼까요?

parseInt('33') + parseInt('55') ===> 88
parseInt('33',8) ===> 27
parseInt('33',16) ===> 51
parseInt('worldcup2002') ===> NaN
parseInt('2002worldcup') ===> 2002
parseInt('33') + parseInt('55.823') ===> 88


parseFloat() 함수

앞서 parseInt() 함수가 문자열을 정수로 변환시켜주는데 비해, parseFloat() 함수는 문자열을 부동소수점으로 변환시켜 줍니다. 만약 문자를 숫자로 변환하지 못하면 NaN을 반환해 줍니다

parseFloat('33') + parseFloat('55') ===> 88
parseFloat('12.345.678') ===> 12.345
parseFloat('12.345e3') ===> 12345
parseFloat('worldcup2002') ===> NaN
parseFloat('2002worldcup') ===> 2002
parseFloat('33') + parseFloat('55.123') ===> 88.12299999999999


숫자.toString([진수])

다음은 10진법(toString(10)), 16진법(toString(16)), 2진법(toString(2)), parseInt를 비교하는 예제입니다. 예제실행을 눌러 확인해 보세요. 
소스는 마우스 오른쪽버튼을 눌러 소스보기에서 보면 됩니다.

<input type="button" value="예제실행">


escape() 함수와 unescape() 함수

escape() 함수는 알파벳과 숫자 및 * , @, - , _ , + , . , / 를 제외한 문자를 모두 16진수 문자로 바꾸어 줍니다. 이 함수는 쉼표와 세미콜론 같은 문자가 쿠키문자열과의 충돌을 피하기 위해 사용됩니다.

이렇게 16진수 문자열로 변환된 문자열은 unescape() 함수로 다시 되돌려줄 수 있습니다

escape('우리나라') ===>%uC6B0%uB9AC%uB098%uB77C
escape('korea') ===>korea
escape('#$%^') ===>%23%24%25%5E
escape('1234') ===>1234
escape('*@-_+./') ===>*@-_+./

unescape('%uC6B0%uB9AC%uB098%uB77C') ===>우리나라
unescape('%23%24%25%5E') ===>#$%^


Number() 함수는 문자형태의 숫자를 숫자로 바꾸어주고, String() 함수는 숫자를 문자로 바꾸어 return 해 줍니다

Number('33') + Number('55') ===> 88

String(33) + String(55) ===> 3355


eval 함수

eval() 함수는 수식형태로된 문자열을 실수로 바꾸어 반환해 주는 자바스크립트 내장함수입니다. 아래의 예문을 보면 쉽게 이해가 되겠죠.

사용형식은 다음과 같습니다

eval(수식형태의 문자열)

예문을 볼까요?

50*3+7 = 157 입니다


다음은 배열객체와 대체 연습입니다.

alert("abc".charAt(1)) = b 은 'b'를 반환한다.

"ABC".charCodeAt(0) = 65 은 "ABC"에서 첫번째의 문자인 "A"의 값 65를 보여준다. 괄호 안의 숫자가 문자열에서 특정 문자의 위치를 지정한다.

11.toString(2) = 1011 (숫자11를 2진법으로 변환)

parseInt('1011',2) = 11 ===> 11. 문자열을 정수로 변환시켜주는 함수입니다. 얼핏보기에는 eval() 함수나 Number() 함수와 비슷해 보이지만, parseInt() 함수는 매개변수를 이용하여 8진수, 16진수 등의 수로도 변환이 가능하며, 숫자형과 문자형이 혼합된 문자열에서 숫자형 뒤에오는 문자형은 0을 반환하여 숫자만 출력 시켜 줍니다.


String.fromCharCode(65,66,67) = ABC 은 "ABC"를 보여준다. String.fromCharCode()로 사용한다. 지정하는 인자는 여러개 지정할 수 있다.

alert( "abcde".slice(1, -2) ) = bc는 "bc"를 반환한다. 문자열에서 두 위치 사이의 문자열을 반환한다. substring()과의 차이점은 두번째 위치를 음수 정수로 지정하여 문자열의 끝에서의 위치를 지정할 수 있는 것이다.

alert( "abcd".substr(-1, 2) ) = cd는 "cd"로 나온다. JavaScript1.1의 subString()과 비슷하게 두개의 위치안의 문자열을 반환한다. subString()과 다른점은 문자열의 끝에서 부터도 찾을 수 있는 것이다.

alert( "a12345".substring(2,4) ) = 23 는 "23"을 보여준다. 문자열에서 지정한 위치 사이에 있는 문자열을 반환한다. 괄호 속에는 두개의 위치값을 인자로 지정해 줄 수 있다. 첫번째 인자의 위치에서 부터 두번째 인자 앞까지의 문자열을 반환한다. 
alert( "a12345".substring(2) ) = 2345 는 "2345"를 보여준다.두번째 인자를 지정하지 않으면 전체 문자열의 끝까지를 지정하는 것이 된다.

var strArrey;
strArray = "abc,dfe,123".split(",")5 는 "2345"를 보여준다.두번째 인자를 지정하지 않으면 전체 문자 는 [abc,dfe,123]으로 strArray는 배열 객체가 된다. strArray.length는 3이고 strArray[2]는 "123"이다.



'12abcd'.substr(1, 2) = 2a

'abcdef'.slice(1, -1) = bcde

'a12345'.substring(0,1) = a

'a12345'.substring(-2,3) = a12

'a12345'.substring(-2,-1) is empty


아래는 문자 ABC에서 A를 추출하여 ==> 아스키코드(65) => 2진수(1000001)로 변환하는 예 :

    'ABC'.substring(0,1) = A(문자추출) ==> 'ABC'.charCodeAt(0) = 65(아스키코드) ==> 'ABC'.charCodeAt(0).toString(2) = 1000001 (2진수)


==================================================

====== var ip = new Array(123,65) ====================

==================================================

다음은 위 변수 ip[]의 ip[0] = 123 과 ip[1] = 65 에 대한 추출법, 각종 연산과 진법 연산입니다.

ip.toString() => 123,65

ip[1] => 65

(ip[0] + ip[1]) => 123+65 = 188

(ip[0] ^ ip[1]) => 123^65 = 1111011^1000001 = 58 (비트연산)

    (ip[0] ^ ip[1]).toString(2) => 123^65 = 111010 (2진수)

(ip[0] & ip[1]) => 123&65 = 1111011&1000001 = 65 (비트연산)

    (ip[0] & ip[1]).toString(2) => 123&65 = 1000001 (2진수)

(ip[0] | ip[1]) => 123|65 = 1111011|1000001 = 123 (비트연산)

    (ip[0] | ip[1]).toString(2) => 123|65 = 1111011 (2진수)

parseInt((ip[0] | ip[1]).toString(2),2) => 123|65 = 123 (10진수)

LIST