자바스크립트 숫자와 .만 입력 채택완료
망고프리
1년 전
조회 4,919
안녕하세요.
아래와 같이 숫자와 .만 입력하면 잘 작동합니다.
190.5
그런데 다른사람들이 붙여넣기 해서 그런지
190.5.
점을 두번 입력해도 숫자와 점만 입력 가능하므로 정상 처리 되어 집니다.
점은 한번만 인식되고 2개 이상 검출되면 에러 메세지 발생하게 할수 있는지 궁금합니다.
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
1년 전
</p>
<pre>
<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; }" ></pre>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
망고프리
1년 전
댓글을 작성하려면 로그인이 필요합니다.
마르스컴퍼니
Expert
1년 전
</p>
<p><input type='text' name='d_r' id='d_r' size='15' maxlength='10' value='' onkeyup="validateInput(this)"></p>
<p><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></p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
잘 작동하네요
감사합니다.