Programing/JS

[정규식] 정수형 숫자만 입력 및 3자리 마다 콤마(Comma) 생성

lejh 2020. 10. 17. 11:32
$("#numInput").on("keyup", function () {
  $("#numInput").val($("#numInput").val().replace(/[^0-9]/g, ""));
});

위에 소스는 키 입력 시 정규식으로 현재 입력된 값이 문자인지 숫자인지 체크해서 숫자이면 입력 허용, 문자이면 입력된 문자는 제거되도록 되있습니다.

 

replace() 메서드는 어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환합니다. 문자열이나 정규식(RegExp)이 될 수 있습니다.

 

 

3자리 마다 콤마 추가

$("#numInput").on("keyup", function () {
  // 이전 값에서 콤마 제거
  var oldData = $("#numInput")).val().replace(/,/gi, "");
  // 신규 입력된 값 + 이전 입력값 합친 다음 콤마 다시 생성
  var newData = oldData.replace(/\B(?=(\d{3})+(?!\d))/g, ",");

  // 값 출력
  $("#numInput")).val(newData);
});

이전에 입력된 값에서 콤마를 제거 한다음 새로 입력한 값 포함해서 콤마를 다시 생성하여 값을 출력 합니다.

 

3자리 일 경우

4자리 일 경우

5자리 일 경우

6자리 일 경우