Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript와 jQuery로 통화 문자열을 숫자로 변환하는 완벽 가이드

웹 개발을 하다 보면 "€55,600.35""$645,345.50"처럼 통화 기호와 콤마가 포함된 문자열을 실제 숫자 값으로 변환해야 하는 경우가 자주 발생합니다. 예를 들어 금액을 더하거나 비교하는 계산 로직을 작성할 때는 반드시 숫자 타입으로 변환해야 합니다.

핵심 원리: replace() 메서드와 정규식(Regex) 활용

가장 간단하고 널리 사용되는 방법은 JavaScript의 replace() 메서드에 정규식을 조합하는 것입니다. 정규식 /[^0-9.-]+/g를 사용하면 숫자(0-9), 마침표(.), 마이너스(-)를 제외한 모든 문자, 즉 통화 기호(€, $ 등)와 콤마(,)를 한 번에 제거할 수 있습니다.

이후 Number() 함수로 감싸주면 문자열이 부동소수점 숫자(double)로 변환됩니다. jQuery 환경에서도 동일하게 작동하며, 별도의 플러그인 없이 순수 JavaScript만으로 처리 가능합니다.

예제 코드

var euroCurrencyValue = "€55,600.35";
var result = Number(euroCurrencyValue.replace(/[^0-9.-]+/g, ""));
console.log(result);

var dollarCurrencyValue = "$645,345.50";
var result1 = Number(dollarCurrencyValue.replace(/[^0-9.-]+/g, ""));
console.log(result1);

프로그램 실행 방법

Node.js 환경에서 위 코드를 실행하려면 터미널에서 아래 명령어를 입력합니다. 파일 이름은 본인의 파일명으로 변경하면 됩니다.

node fileName.js

여기서는 파일 이름이 demo324.js라고 가정합니다.

실행 결과

위 프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

PS C:\Users\Amit\javascript-code> node demo324.js
55600.35
645345.5

코드 상세 설명

  • 정규식 패턴 분석: 대괄호 안의 ^는 부정(negation)을 의미하므로, [^0-9.-]는 '숫자, 점, 하이픈이 아닌 모든 문자'를 뜻합니다.
  • g 플래그: 전역(global) 검색 옵션으로, 일치하는 모든 문자를 제거합니다. 이 옵션이 없으면 첫 번째 문자만 제거됩니다.
  • Number() 변환: 정리된 문자열을 숫자 타입으로 변환하여 사칙연산이 가능하게 만듭니다.

추가 팁: 안전한 변환 처리

사용자 입력값처럼 형식이 불확실한 데이터를 다룰 때는 변환 결과가 유효한지 확인하는 것이 좋습니다. isNaN()을 활용하면 잘못된 입력으로 인한 오류를 방지할 수 있습니다.

function parseCurrency(value) {
  var num = Number(String(value).replace(/[^0-9.-]+/g, ""));
  return isNaN(num) ? 0 : num;
}

console.log(parseCurrency("$1,234.56")); // 1234.56
console.log(parseCurrency("잘못된 입력")); // 0

이처럼 replace()와 정규식만 활용하면 어떤 통화 형식이든 손쉽게 숫자로 변환할 수 있으며, 유럽식(€), 달러($), 원화(₩) 등 다양한 통화 기호에 범용적으로 적용할 수 있다는 장점이 있습니다.