2011-07-28 3 views
0

텍스트 상자에서 정수 값의 유효성을 검사하는 JavaScript 함수를 만들려고했습니다. 그러나 나는 그것을 검증하는 최선의 방법을 찾지 못했습니다.정수 및 float 값에 대한 유효성 검사는 자바 스크립트를 사용합니다

(정수 및 소수 값을 사용할 수 있지만 영문은 허용되지 않습니다).

+2

귀하의 질문은 1 차'must' 단어를 포함하고 나는 어느 곳에서나 '여기 내가 지금까지 시도 코드 ...이다'단어를 보지 않았다. 지금까지 시도한 것을 설명하지 않고 선생님/클라이언트/관리자 요구 사항을 게시하는 것은 여기에 적합하지 않습니다. 자바 스크립트 개발자를 고용해야 할 수도 있습니다. –

+0

해당 댓글 죄송합니다. – Rubyist

답변

0

우물쭈물하지 않은 html5 입력으로 초현 대식 브라우저에서 (그리고 오늘은 내가 실수하지 않으면 웹킷 만 의미합니다.) 거기에 있습니다. type = "number"인 입력도 있습니다. 당신은이 방법으로 지원 여부를 확인할 수 있습니다

function hasInputNumber() { 
    var el = document.createElement("input"); 
    el.setAttribute("type", "number"); 
    var testval1 = "12121.121"; 
    var testval2= "1212.asas.a"; 
    el.value = testval1; 
    var test1 = el.value === testval1; 
    el.value = testval2; 
    var test2 = el.value != testval2; 
    return test1 && test2; 
} 

나머지에 관해서는, 당신은 입력 유형 = "숫자"를 사용하고이 기능이 지원되지 않습니다 때 자바 스크립트와 행동의 모방 시도 할 수 있습니다. 사람들은 종종이 청취 키보드 이벤트를 수행하고 숫자 이외의 입력을 취소하려고 시도합니다. 입력을 붙여 넣을 수 있고, 실수로 플로트 수를 확인하는 것이 그렇게 쉽지는 않으므로 실제로 완전하고 올바르게 구현하는 것은 실제로 매우 어렵습니다. 따라서 제출하기 전에 유효성을 검사 할 것을 권장합니다.

유효성 확인 자체에는 parseIntparseFloat의 두 가지 기능을 사용할 수 있습니다. 부탁해, 미묘한 문제가있다. 항상 parseInt에 두 번째 매개 변수로 10을 전달하고 js가 데이터를 파싱하려고 시도한다는 것을 명심하십시오. 예를 들어, "121212sdsds"는 html5의 입력 [type = "number"]에서 숫자로 간주되지 않습니다. 그러나 parseFloat와 함께 121212로 구문 분석됩니다.

내가 언급해야 할 마지막 것은 NaN입니다. NaN은 특별한 타입의 숫자입니다 (예, 실제로는 숫자입니다, typeof NaN == "number" 이후). parseInt 및 parseFloat는 입력을 구문 분석하지 못하면 NaN을 반환합니다. NaN! = Nan 이후 뭔가를 검사하는 올바른 방법은 NaN 함수 인 isNaN을 호출하는 것입니다.

는 내가 내가 내가 충분히 질문을 이해한다면 확실하지 오전 JS에서 번호 확인 :

1

에 대해 말할 수있는 모든 것 같아요. 텍스트 상자에 입력 된 정수 만 있는지 확인 하시겠습니까? 그렇다면, 나는 reg 식을 사용하여 텍스트 상자를 검사 할 것입니다. 같은 :

function isNum(elem, msg){ 
var numericExpression = /^[0-9]+$/; 
if(elem.value.match(numericExpression)){ 
    return true; 
} 
    else{ 
    alert(msg); 
    elem.focus(); 
    return false; 
} 

}

관련 문제