javascript comma and uncomma

munilive
munilive

자바스크립트에서 숫자를 표기할때 3자리마다 콤마를 찍어줘야 할 때가 있다 자주 사용하는 기능인데 매번 만들기란 여간 귀찮은게 아니다.

  • 콤마찍기

    //콤마찍기
    function comma(str) {
      str = String(str);
      return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
    }
  • 콤마 풀기

    //콤마풀기
    function uncomma(str) {
      str = String(str);
      return str.replace(/[^\d]+/g, '');
    }
  • input box에서 사용자 입력시 바로 콤마를 찍어주기 위한 함수도 추가 한다.

    function inputNumberFormat(obj) {
      obj.value = comma(uncomma(obj.value));
    }
    
    //<input type="text" onkeyup="inputNumberFormat(this)" />
  • -기호를 포함하여 천단위마다 콤마를 찍거나 뺄수 있도록 변경

    //콤마찍기
    function comma(str) {
      str = String(str);
      var minus = str.substring(0, 1);
    
      str = str.replace(/[^\d]+/g, '');
      str = str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
    
      if (minus == '-') str = '-' + str;
    
      return str;
    }
    
    //콤마풀기
    function uncomma(str) {
      str = String(str);
      var minus = str.substring(0, 1);
    
      str = str.replace(/[^\d]+/g, '');
    
      if (minus == '-') str = '-' + str;
      return str;
    }
    • Jquery를 이용해서 사용 가능

      //jquery 라이브러리 필요
      function inputNumberFormat(obj) {
        $(obj).keyup(function (event) {
          if (event.which != '9') {
            obj.value = comma(uncomma(obj.value));
          }
        });
      }

2013년도에 작성한 글인데 최근(2020년) 댓글로 @ImSejin 님이 콤마를 더 쉽게 사용 할 수 있는 방법을 알려 주셔서 내용을 추가한다.
(단, uncoma는 불가능하다.)

Number(123123123).toLocaleString(); // "123,123,123"

자바스크립트의 Number Object에서 제공하는 기본 메소드로 각 언어 및 지역별 문화에 맞는 표현법으로 값을 리턴 해준다. Number만 제공하는 것이 아니라 Date 객체도 제공한다.
Array, Object에도 toLocaleString() 메소드가 존재하는데, Object의 경우는 단순 toString()의 역할이고 Array의 경우에는 Array내에 담긴 데이터의 타입에 따라 작동한다.

toLocaleString()에 대한 내용은 Javascript 내장함수를 이용한 숫자/날짜의 현지화 글을 참고하자.

munilive

munilive

Backend Application Developer

Share

Comments

Related Posts

datepicker 시작일과 종료일 설정 시 사용하기 좋은 팁

datepicker 시작일과 종료일 설정 시 사용하기 좋은 팁

웹 프로그래밍을 하다 보면 가끔 시작일과 종료일을 입력받는 프로그램을 제작하곤 한다. 사용자에게 날짜를 입력받아야 하는데 텍스트 박스만 떡하니 놔두면 사용자가 제대로 된 데이터를…

munilive munilive ·
JQuery : 클래스 이름만으로 페이지 전체에 롤오버 이미지 쉽게 적용하기

JQuery : 클래스 이름만으로 페이지 전체에 롤오버 이미지 쉽게 적용하기

작업중에 얻은 소스를 변경한것. 기존에는 지정한 파일 확장자의 이미지 만을 사용했다면 변경한 것에는 이미지 파일에 상관 없이 클래스명이 일때 무조건 확장자 앞에 의 유무에…

munilive munilive ·
php number format for javascript

php number format for javascript

PHP 함수로 존재하는 함수를 함수로 구현하였습니다. 사용방법은 php와 동일합니다.

munilive munilive ·