자바스크립트 숫자와 .만 입력

자바스크립트 숫자와 .만 입력

QA

자바스크립트 숫자와 .만 입력

본문

안녕하세요.

아래와 같이 숫자와 .만 입력하면 잘 작동합니다.

190.5

그런데 다른사람들이 붙여넣기 해서 그런지

190.5.

점을 두번 입력해도 숫자와 점만 입력 가능하므로 정상 처리 되어 집니다.

점은 한번만 인식되고 2개 이상 검출되면 에러 메세지 발생하게 할수 있는지 궁금합니다.

감사합니다.

 

<input type='text' name='d_r' id='d_r' size='15' maxlength='10' value='' onkeyup="if(this.value.match(/[^0-9.]/)) { window.alert('숫자만 입력가능합니다.'); this.value = ''; return false; }">

이 질문에 댓글 쓰기 :

답변 2



<input type='text' name='d_r' id='d_r' size='15' maxlength='10' value=''
       onkeyup="if(this.value.match(/[^0-9.]/) || this.value.match(/\./g).length>1) { window.alert('숫자만 입력가능합니다.'); this.value = ''; return false; }" >


<input type='text' name='d_r' id='d_r' size='15' maxlength='10' value='' onkeyup="validateInput(this)">
<script>
function validateInput(input) {
    // 입력된 값에서 모든 공백 제거
    var value = input.value.replace(/\s/g, '');
    
    // 숫자와 소수점만 허용하는 정규표현식
    var regex = /^[0-9]*\.?[0-9]*$/;
    
    if (!regex.test(value)) {
        alert('숫자와 소수점만 입력 가능합니다.');
        input.value = '';
        return false;
    }
    
    // 소수점이 두 번 이상 입력되었는지 확인
    var dotCount = (value.match(/\./g) || []).length;
    if (dotCount > 1) {
        alert('소수점은 한 번만 입력 가능합니다.');
        input.value = value.substr(0, value.lastIndexOf('.'));
        return false;
    }
    
    // 유효한 입력인 경우, 공백이 제거된 값을 입력 필드에 설정
    input.value = value;
    return true;
}
</script>
답변을 작성하시기 전에 로그인 해주세요.
전체 2,660
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT