2011-09-20 8 views
1

숫자를 입력하면 오류가 발생합니다.숫자 입력을 방지하는 자바 스크립트 프로그램을 어떻게 얻을 수 있습니까?

+0

항목에 하나 이상의 숫자가 있거나 숫자로만 구성된 경우 입력을 거부 하시겠습니까? 부동 소수점 수는 어떻습니까? 비 라틴 숫자는? 좀 더 구체적 일 수 있습니까? 감사. –

+0

문자 사이에 아무런 umber도 포함하지 말고 – James

+1

숫자를 입력하십시오. "문자"라고 말하면 "문자"또는 "숫자를 제외한 모든 문자 (구두점 등)"를 의미합니까? – nnnnnn

답변

2

숫자를 제외하려면 숫자 만 제외하고 regEx로 바꾸면됩니다. 당신은 그들이뿐만 아니라 숫자를 입력 할 수 없습니다있는 사용자를 .. 말할 수

//collect the string 
var userStr = getTheString();//whatever the source of the string is... probably called onKeyUp 
if(userStr.match(/\d/)){ 
    userStr = userStr.replace(/\d+/g,"");//[edited to include all digits] 
    alert("no numbers please"); 
} 

[편집] 이것은 분명, 정규 표현식이 할 수있는 정말 강력한 방법으로, 숙제 같은 소리 모든 종류의 문자열 조작 및 유효성 검사. 위의 예제에서 문자열에 숫자가 있는지 테스트 (일치 사용)하고 있습니다. 사용자가 키보드에서 손을 떼면 무단 입력을 방지 할 수 있습니다. replace() 메서드는 문자열의 모든 숫자 (\ d +)를 찾아 빈 문자열 인 두 번째 매개 변수로 바꿉니다. 루프와 자신 만의 문자열 방법을 사용하여 문자열로 문자를 읽은 다음 숫자 문자를 추출하여 분명히이 모든 작업을 훨씬 더 복잡한 방식으로 수행 할 수 있습니다. 교사가 regEx를 사용하지 않고도 알아낼 것을보고 싶다면 (알고리즘 적 사고를 배워야하는 초보자 프로그래머에게는 매우 합리적입니다.) 그런 말을해야합니다. 우리는 여러분이 "추악한"방식으로 도와 줄 것을 기꺼이 도와 줄 것입니다.

건배.

+0

좋은 시작입니다. OP가 모든 자릿수를 치기를 원한다면,'/ d +/g'를 대신 사용하는 것이 좋습니다. (그렇다면 +1이 될 것입니다.) –

0

입력을 확인하는 방법은 this jsfiddle을 참조하십시오. 기본적으로 입력 필드를 주기적으로 스캔하고 입력 및 형식화 규칙을 읽고 필드 값이 이러한 규칙을 준수하지 않는 경우 경고합니다. 이 접근법은 입력 필드에 붙여 넣은 값 (Ctrl-V)도 캐치합니다.

1

이 자바 스크립트 기능을 사용할 수 있습니다.

function onlyNumbers(event) { 
    var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; 
    if (Key == 13 || (Key >= 48 && Key <= 57)) return true; 
    else return false; 
} 

사용 :

<input type="text" onkeypress="return onlyNumbers(event);" /> 

이 모든 숫자 입력을 방지 할 수 있습니다. 사용자에게 경고하고 싶다면이 것을 사용할 수 있습니다.

function onlyNumbers(event) { 
    var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; 
    if (Key == 13 || (Key >= 48 && Key <= 57)) return true; 
    else alert("Error"); 
} 

희망 사항. 질문에 대한 답변입니다.

+0

keyCode를 사용하면 IME를 사용하여 데이터를 입력하는 사용자가 문제가되며 숫자를 붙여 넣을 수 없습니다. – Kornel

관련 문제