Programing/javascript

가격 입력 필드를 위한 jQuery 자동 포맷팅 및 제한(금액만)

2025. 4. 21. 16:31
반응형

웹 페이지에서 금액을 입력받을 때, 천 단위마다 콤마를 자동으로 삽입하거나 입력 가능한 최대 금액을 제한하는 기능은 사용자 편의성뿐만 아니라 관리자 입장에서도 데이터의 일관성과 관리 효율성을 확보하는 데 유용합니다. 본 문서에서는 해당 기능을 jQuery를 활용하여 구현하는 방법을 설명하며, .onlyprice 클래스를 중심으로 그 구체적인 적용 방식을 다룹니다.


✨ 코드 원문

$(document).on('keyup focusout', '.onlyprice', function(){
    var value = $(this).val().replace(/[^0-9,]/g, ''),
        limit = $(this).data('limit');

    value = value.replace(/,/g, '');
    var formattedValue = value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');

    if (limit > 0)
    {
        var numericValue = parseInt(value);
        if (numericValue > limit)
        {
            formattedValue = number_format(limit);
        }
    }

    $(this).val(formattedValue);
});

✨ 주요 기능 설명

1. 숫자와 콤마만 허용

var value = $(this).val().replace(/[^0-9,]/g, '');
  • 숫자(0-9)와 콤마(,)를 제외한 모든 문자 제거

2. 기존 콤마 제거 및 다시 포맷팅

value = value.replace(/,/g, '');
var formattedValue = value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
  • 모든 콤마를 제거한 후, 천 단위 콤마 추가 (1000000 → 1,000,000)

3. 최대 금액 제한 기능

if (limit > 0)
  • 입력 필드에 data-limit 속성이 지정되어 있으면, 해당 값을 초과하지 않도록 제한
  • 초과 시, 최대 허용 값으로 자동 조정 (예: number_format(1000000) 반환)

4. 입력값 업데이트

$(this).val(formattedValue);
  • 필터링 및 포맷팅된 값을 입력 필드에 다시 반영

✨ 보조 함수: number_format()

위 코드에서는 number_format(limit) 함수를 호출하고 있습니다. 일반적으로 이는 다음과 같은 형식으로 정의됩니다:

function number_format(num) {
    return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
  • 숫자를 문자열로 바꾼 뒤, 천 단위 콤마를 삽입해줍니다.

✨ 사용 예시

<input type="text" class="onlyprice" data-limit="1000000" placeholder="금액을 입력해주세요" />
  • 위 예시에서는 1,000,000을 초과하여 입력할 수 없습니다.

✨ 활용 팁

  • input 이벤트까지 감지하면 모바일 환경에서도 반응이 더 매끄러워집니다.
  • Intl.NumberFormat을 사용하면 로케일 기반 포맷팅도 가능

✨ 결론

입력값을 실시간으로 필터링하고 포맷팅해주는 이 코드는 금액 입력 UI의 직관성과 편의성을 높여줍니다. 사용자 오류를 줄이고, 시스템에도 안정적인 데이터를 전달할 수 있게 해주므로 거의 모든 쇼핑몰, 결제 입력 폼에 적용 가능합니다.

반응형

'Programing > javascript' 카테고리의 다른 글

휴대폰 번호 유효성 검사 JavaScript  (1) 2025.04.21
긴 문자열 중간 생략을 위한 JavaScript 함수  (0) 2025.04.21
금액을 10원 단위로 반올림, 올림, 내림하는 JavaScript  (0) 2025.04.21
이메일 입력 필드를 위한 한글 및 공백 제거 jQuery  (0) 2025.04.21
숫자와 쉼표(,)만 입력 가능하게 하는 jQuery 입력 필터링  (0) 2025.04.21
한글만 입력 가능한 입력 필터링 jQuery (한글 + 영문 추가)  (1) 2025.04.21
자바스크립트 Flyweight Pattern  (1) 2025.04.19
자바스크립트 Bridge Pattern  (0) 2025.04.19
'Programing/javascript' 카테고리의 다른 글
  • 금액을 10원 단위로 반올림, 올림, 내림하는 JavaScript
  • 이메일 입력 필드를 위한 한글 및 공백 제거 jQuery
  • 숫자와 쉼표(,)만 입력 가능하게 하는 jQuery 입력 필터링
  • 한글만 입력 가능한 입력 필터링 jQuery (한글 + 영문 추가)
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (466) N
      • 금융 (61)
      • Programing (286) N
        • Algorithm (39)
        • API (2)
        • javascript (121)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (17)
        • MS-SQL (1)
        • MySQL (12)
        • 보안 (2) N
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6) N
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (33) N
        • 회고 (3)
        • 컬럼 (1) N
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    js패턴
    SQL
    블로그
    자바스크립트
    자바스크립트유틸
    php
    디자인패턴
    위시리스트
    jsp
    IT블로그
    자바
    IT 관련
    사고 싶은 책
    기초
    JavaScript
    읽고 싶은 책
    Java
    IT·컴퓨터
    iT's MY LiFE
    It
Dongkkase
가격 입력 필드를 위한 jQuery 자동 포맷팅 및 제한(금액만)
상단으로

티스토리툴바