2011-09-12 5 views
0

을보기 위해 4 자리 숫자의 유효성을 검사하려고합니다. 오히려 나 자신을 위해 물건을 계산하거나 다른 사람들이 게시했거나 이미 질문 한 것에서 배우기를 원합니다. 해결되었습니다. 이와 같이 이것은 여기에 내 첫 게시물입니다!javascript : x <100 (예 : 0100)

이것은 매우 간단하거나 im을 복잡하게 만들거나 im을 잘못된 방법으로 수정하는 것입니다. 이제 2 시간 넘게 어디에서나 검색하고 있습니다. 나는 john에서 멍청한 놈이 아니지만 나는 아직도 새롭다, 나는 배우고, ameteur을 말할 것인가 ?? 됐건는 ....

는 내가 일을하려고하고 무엇을 : 그래서

나는 사용자가 4 자리 숫자를 입력하는 번호 입력 상자 <input type="number" maxlength="4" .../> 100에서 8000 (4 자리 수 있어야)가 그래서 분명히 100에서 999는 0100 - 0999가 될 것입니다.

지금까지 아무런 문제가 없었습니다. 문자열을 사용하여 변수를 4 자리로 전달할 수 있습니다.

문제는 내가 입력을 확인하기 위해 특정 조건을 추가해야한다는 것입니다. 하나의 조건은 나를 괴롭 히고있다. 이것은 내가 지금까지 무엇을 가지고 :

(var에 X는 이미 형태와 번호 입력 상자로 설정)

if (x=="" || isNaN(x) || x.length!== 4 && x< 0100 || x>8000)
{alert(please enter the correct amount!}
else {run rest of function}

그래서 그들은 모든 작업 execpt : 사용자가 경우 x<0100

99를 입력하면 4 자리가 아니기 때문에 플래그를 표시하고 0099를 입력하면이를 받아 들여 나머지 기능 코드를 실행합니다.

난 그냥 일종의 관련, 나는 다른 포스트, How to make 8 digit number in javascript?을 발견 0099.

0001에서 금액에 대해 경고하기 위해 필요하지만, 사람은 출력에 0으로 채워 숫자를 원한다. 나는 솔루션 중 하나 (아래 코드) 나에게 유용 할 수 있습니다 생각하지만 난 오히려 피곤으로 뇌 기진 맥진하고 새로운 내가 그것을 해결하지 못할 :

var i = (100).toPrecision(8).split('.').reverse().join('');

내가 그것을 편집하여 시작할 것 :

var i = (x).toPrecision(4).split('.').reverse().join('');

(그러나 것이라고 그들은 나중에 내가 무슨 뜻인지 볼 경우 없습니다 ... 0099 99를 입력 한 경우이에서만 작동)

을 내가 그것을 99.00에 코드 (분할 0099의 역처럼 될 것 같아), 그리고 나서 진술서 다음과 같습니다 : if(.... && i<==99 || ....)하지만 idk에서 JS로 작성하는 방법 ...

오케이 이런 식으로 나에게 마음이 어지럽게 보일 까봐 반쯤 멍청한 멍청한 놈이다.

미안이 아니 포맷 정확하고 너무 오래, 내가이 글을 읽는 당신의 인내에 대한 코드 기능 ...

감사를 사용하는 방법을 파악 havent 한 (당신은 도니는 다르게 지금까지이있어 경우).

ADVANCE

IN

감사 썩을는-X x00010099 사이 인 경우

+1

이 문제를 해결하기 위해 정규 표현식을 사용하는 것이 어떻습니까? '^ [0-9] {4} $'와 같이 숫자가 위의 정규 표현식과 일치하지 않으면 앞에 0을 앞에 붙이고 다시 일치시킵니다. – Bassem

+0

'if' 조건의 중간에서'&&'를'||'로 변경하고'x <0100'보다는'x <100'라고 말하십시오. – nnnnnn

+0

실제 값 (범위)을 원하면 parseInt (x)를 사용하십시오. 그게 네가 찾고 있던거야? 정수로 조건을 확인하십시오 – galchen

답변

2

수를 할 수 (십진수로 64)입니다.

나는 그냥 문자열과 비교하여 잘 할 것이라고 생각 : 돈을

+x < 100 || +x > 8000 

를 (실제로 당신을 :

x < "0100" || x > "8000" 

그렇지 않으면 당신은 숫자로 x를 변환 100에 대해 비교해야 x을 명시 적으로 변환해야하지만 어느 데이터 유형을 비교하는지 명확하게 해줍니다.

업데이트 : 그리고 내가 볼 수있는 한 &&||으로 대체해야합니다.

0

확인하려면 0100진수 값으로 처리됩니다이

if (x.match(/00([1-9][0-9]|0[1-9])/)) 
0

이러한 방법을 조합 해보십시오.

실제로 숫자가 실제로 숫자인지 확인하고 싶습니다 (예 : 문자 등이 포함되지 않음). 이 메서드를 호출하여 숫자가 유효한 숫자 값인지 확인하여이 작업을 수행합니다.

function isNumber(n) { 
    return !isNaN(parseFloat(n)) && isFinite(n); 
} 

은 일단이 숫자로 상대하고 있음을 확인, 당신이 할 수있는 패드 그것 (필요한 경우)이 같은 :

function pad(num, size) { 
    var s = "000" + num; 
    return s.substr(s.length-size); 
} 

는 당신이 실제로에 값을 변환해야합니다, 패딩 번호와 함께 작동하도록 문자열.

관련 문제