2013-04-01 2 views
2

나는 간단한 양식을 만들고 거리 주소 용 텍스트 상자가 있습니다. 입력하고 싶은 첫 번째 값이 숫자인지 확인하고 싶습니다.자바 스크립트를 사용하여 텍스트 상자의 첫 번째 문자가 숫자인지 확인하는 방법은 무엇입니까?

어떻게하면됩니까?

if(document.forms[0].elements[2].value. 

내가 지금 가지고있는 전부지만 첫 번째 문자 만 확인하려면 무엇을 추가해야하는지 잘 모르겠습니다.

+0

[Duplicate] (http://stackoverflow.com/questions/9716468/is-there-any-function-like-isnumeric-in-javascript-to-validate-numbers)? – hd1

+0

문자열 함수 나 정규식을 사용할 수 있습니다. – saji89

+1

'if (/^\ d/.test (document.forms [0] .elements [2] .value))' – Ryan

답변

5

당신은, 당신은 첫 번째 문자는 0에서 9 또는 기타 첫 번째 문자를 원하는 확인하는 것입니다 여부를 확인하는 문자열 charAt 기능을 사용할 수 있습니다 첫 번째 문자를 확인하려는 질문에 말했듯이

가능한 해결 방법

var firstChar = document.forms[0].elements[2].value.charAt(0); 
if(firstChar <='9' && firstChar >='0') { 
     //do your stuff 
} 
+1

원래 코드가이 트릭을 수행 할 것입니다. 'firstChar'는 숫자가 아니며 문자열이며 '9' 또는'0'과 비교 될 수 없습니다. 이 비교는 항상 거짓입니다. '9'와 '0'대신에 비교하거나 '48'과 '57'사이에 체크되어야 할'charCodeAt (0)'으로 ASCII 값을 얻으십시오. – Havenard

+0

고마워 :-) 편집하는 동안 인용 부호가 누락되었습니다. – vdua

+0

그것도 잘 작동했을 것입니다. 콘솔에서 이것을 시도하십시오. 'str = "90"; c = str.charAt (0); c <=9 && c> = 0'은 true를 반환합니다. Javascript에는 강력한 유형이 없으므로 ==는 정상적으로 작동하고 정수 9와 비교할 때 '9'가 true를 반환합니다. Java 및 C와 같은 다른 언어에서는 답변이 정확했을 것입니다. 정적 데이터가 없음을 기억하십시오 JavaScript의 유형. – vdua

1

if (document.forms[0].elements[2].value.match(/^\d+/))을 사용하여 입력란의 시작 부분이 숫자로 구성되어 있는지 확인할 수 있습니다.

0 - valid 
1 - valid 
1a - valid 
1 a - valid 
1234567 - valid 
a - invalid 
a1 - invalid 

번호로 시작하는 문자 그대로 아무것도 :

그것은을 위해 일치합니다.

당신은 지금 그 숫자 더하기 하나 이상의 공백이 아무것도 다음에해야 할이 형식에서 if (document.forms[0].elements[2].value.match(/^\d+ +.+/))

에 그 기능을 확장 할 수 있습니다.

0 - invalid 
1 - invalid 
1(space) - invalid 
1 1 - valid 
1 a - valid 
12345 abcdef - valid 

복합체 검사에 대한 자세한 내용은 Regular Expressions을 참조하십시오.

하지만 모든 주소에 숫자가있는 것은 아니며 대부분의 국가에서는이 주소 쓰기 형식을 사용하지 않습니다. 주소 필드에 관해서는, 나는 사용자가 원하는 형식으로 글을 쓸 수 있도록 공개해야한다고 생각합니다.

4

이것은 단순히 isNaN를 사용할 수 있습니다.

var val = document.forms[0].elements[2].value; 
if (!isNaN(val.charAt(0))){ //If is a number 
    //Stuff 
} 

이것은 또한 문자열로 숫자와 함께 간다, 그래서 :이 숫자 인 경우 대신 체크 isNaN의 정상적인 사용, 확인하기 전에 이렇게 같은 숫자가 아닌 경우 그냥 강타를 넣어 따옴표 또는 그 후회에 대해 걱정할 필요가 있습니다.

관련 문제