반응형
input 태그에서 oninput으로 숫자만 입력받기 (정규표현식) (from IE to Chrome)
문제 코드
<input type="text" style="ime-mode:disabled" onkeypress"filterKey('[0-9]')" />
function filterKey(filter) {
var key = String.fromCharCode(event.keyCode);
var reg = new RegExp(filter);
if(!reg.test(key)) event.returnValue = false;
}
- ime-mode로 한글입력을 방지하고 filterKey 함수로 숫자만 입력하다록 제한을 두고 있다
- 그러나 복사 붙여넣기는 여전히 가능하다
- ime-mode는 ie를 제외하고 Edge(79 version 까지는 동작) Chrome, Safari등 브라우저에서 deprecated 및 지원되지 않는다
해결코드
<input type="text" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"/>
- IE9 이상 버전부터 지원 된다.
- 복사 붙여넣기 , 숫자를 제외한 모든 입력값은 입력되지 않는다.
'프로그래밍 > 자바스크립트' 카테고리의 다른 글
[Jsp][javascript] 자바스크립트와 JSTL의 혼용법 (0) | 2020.11.13 |
---|---|
[Javascript] [Vue] 뷰 인스턴스 (0) | 2020.11.13 |
[Javascript][IE] 실시간 글자수(텍스트 입력 수) 감지하는 함수 (0) | 2020.11.13 |
SCRIPT5: Access is denied in (엑세스가 거부 되었습니다) 해결방법 (0) | 2020.11.10 |
[Javascript] 자바스크립트 기본 정리 (0) | 2020.11.08 |