[자바스크립트] 숫자 입력시 정규식을 이용한 자릿수 제한 - 퍼옴
2014. 1. 3. 14:55ㆍIT/Tips!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <input type="text" onkeypress="return isNumberKey(event)" /> function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : event.keyCode; if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) return false; // Textbox value var _value = event.srcElement.value; // 소수점(.)이 두번 이상 나오지 못하게 var _pattern0 = /^\d*[.]\d*$/; // 현재 value값에 소수점(.) 이 있으면 . 입력불가 if (_pattern0.test(_value)) { if (charCode == 46) { return false; } } // 1000 이하의 숫자만 입력가능 var _pattern1 = /^\d{3}$/; // 현재 value값이 3자리 숫자이면 . 만 입력가능 if (_pattern1.test(_value)) { if (charCode != 46) { alert("1000 이하의 숫자만 입력가능합니다"); return false; } } // 소수점 둘째자리까지만 입력가능 var _pattern2 = /^\d*[.]\d{2}$/; // 현재 value값이 소수점 둘째짜리 숫자이면 더이상 입력 불가 if (_pattern2.test(_value)) { alert("소수점 둘째자리까지만 입력가능합니다."); return false; } return true; } |
참고
원래는 아래와 같이 Input Text 의 onkeyup 이벤트 아래 함수를 호출해 처리할라 했으나,
키보드 연타시 가끔 이벤트가 먹히는 현상이 있어 위와같이 처리함.
1 2 3 4 5 6 7 8 9 10 11 | <input type="text" onkeyup="return checkMaxNum(event)" /> function checkMaxNum(evt) { var _pattern = /^(\d{1,3}([.]\d{0,2})?)?$/; var _value = event.srcElement.value; if (!_pattern.test(_value)) { alert("1000 이하의 숫자만 입력가능하며,\n소수점 둘째자리까지만 허용됩니다."); event.srcElement.value = event.srcElement.value.substring(0,event.srcElement.value.length - 1); event.srcElement.focus(); } } |
[출처] [ javascript ] HTML Input Text에 숫자 입력시 자바스크립트 정규식을 이용한 자릿수 제한|작성자 wow0815
http://blog.naver.com/wow0815?Redirect=Log&logNo=90179437831
'IT > Tips!' 카테고리의 다른 글
[jQgrid] 관련 정리. (0) | 2014.12.23 |
---|---|
JQuery 및 CSS 관련 팁 사이트 (0) | 2014.08.25 |
[JQUERY] 자주 쓰이는 팁 [퍼옴] (0) | 2014.08.04 |
[VMWare] 원격 설정 및 테스트? 텔넷 '^]' 에러? (0) | 2014.07.01 |
[이클립스(Eclipse)] 조판부호, 문단부호(공백문자) 보이기/없애기 (2) | 2014.04.07 |