[JS/jQuery]정규표현식 숫자 소수둘째자리까지 적용하기

input태그에 소수점 둘째자리까지만 받고 싶었다. input number 타입을 쓰고 step=”0.01”을 쓰는 방법도 있지만 input타입을 text로 써야하는 상황이라 그냥 정규식을 사용했다.

숫자 소수점 둘째짜리만 입력허용하는 경우

1
<input type="text" id="price" val="0" />
1
2
3
4
5
6
$("#price").keyup(function(){
let price = $(this).val();
const regex = /(^/d+$)|(^d{1,}.\d{0,2}$)/g;
let resultPrice = price.replace(regex, "");
$(this).val(resultPrice);
});




숫자입력만 허용하는 경우

1
<input type="text" id="price" val="0" />
1
2
3
4
5
6
$("#price").keyup(function(){
let price = $(this).val();
const regex = /[^0-9]/g;
let resultPrice = price.replace(regex, "");
$(this).val(resultPrice);
});

이렇게 처리한다면 input태그에 숫자가 아닌 문자는 입력이 아예 안된다!