2013-03-14 2 views
1

간단한 질문이지만 나에게는 적합하지 않습니다. :)공백 또는 null 문자 지우기

이 코드를 통해가는

: 여기에 코드

this

같은 출력을 줄 것이다

<!DOCTYPE html> 
<html> 
<body> 

<h1>My First JavaScript</h1> 

<p>Please input a number.</p> 

<input id="demo" type="text"> 

<script> 
function myFunction() 
{ 
var x=document.getElementById("demo").value; 
if(x==""||isNaN(x)) /*?*/ 
    { 
    alert("Not Numeric"); 
    } 
} 
</script> 

<button type="button" onclick="myFunction()">Click Me!</button> 

</body> 
</html> 

우리 체크하는 경우 if(x==""||isNaN(x))을 확인하여 값의 enterd하지, 경고 사용자, . 그러나 텍스트 상자 안에 공백 문자를 입력하면 검사가 실패합니다. 그것을 확인하는 방법은 무엇입니까?

추 신 : 크롬을 사용하고 있습니다. 그리고 trim()은 효과가 없습니다.

+0

무엇을 확인 하시겠습니까? * 숫자 *에 대한 많은 정의가 있으며, 공백 만있는 문자열을 숫자로 변환하면 자바 스크립트에서 '0'이됩니다. – Bergi

+0

"null 값"은 무엇입니까? 텍스트 입력의'value' 속성은 항상 문자열이며, 결코'null'이 아닙니다. –

+0

null 값이 입력되면 – Bergi

답변

1

정규 표현식

을 insted 시도하여 입력 문자열을 트리밍
function myFunction(){ 
    var x=document.getElementById("demo").value; 
    if(!(/^\d+$/.test(x))) { 
     alert("Not Numeric"); 
    } 
} 

데모 : Fiddle

+0

그 자리의 존재에 대해서만 테스트합니다 – Bergi

+0

@ Bergi 업데이트 된 정규식 –

+0

예 근무했습니다. 감사합니다.하지만'테스트 (x)'무엇입니까? –

0

숫자가 맞는지 확인하기 전에 을 x에 전화하는 것이 좋습니다. trim은 콘텐츠의 왼쪽과 오른쪽에있는 공백을 제거합니다 (있는 경우).

var x=document.getElementById("demo").value; 
x = x.trim(); 

일부 오래된 브라우저에서는 다듬기를 사용할 수 없습니다. 지원이 필요한 경우 직접 구현하거나 jQuery.trim과 같은 라이브러리 함수를 사용할 수 있습니다.

당신은이를 사용할 수 있습니다

if(isNaN(parseInt(x))) 

(당신의 X를 가정 정수 있어야합니다.)

0

것은

var x=document.getElementById("demo").value.trim(); 
+0

그 작동하지 않습니다 : ( –

1

jquery를 사용하면 편리합니다.

$ .trim ('any value');

또는 자바 스크립트 만 사용하려면 공백을 무시하려면 트림 기능을 사용하십시오. 비록 새로운 브라우저가 손질을 지원합니다. 브라우저 호환성 문제를 극복하기 위해 별도의 함수를 만드는 것이 좋습니다.

var x=trim(document.getElementById("demo").value); 
+0

OP는 분명히 jQuery를 사용하지 않습니다. – Bergi

0

최신 브라우저가 string.trim 기능을 지원으로 코드를 변경 냈다 코드에서 다음 함수

function trim(this) 
{ 
return this.replace(/^\s+|\s+$/g, ''); 
}; 

을 만들 수 있습니다. 보다 광범위한 범위의 경우 정규식을 사용하여 공백을 제거한 다음 결과의 길이를 확인할 수 있습니다. 0보다 큰 경우 NaN을 테스트합니다.

여기에 손질 한 방법입니다 :

function trim(stringToTrim) { 
    return stringToTrim.replace(/^\s+|\s+$/g,""); 
} 

테스트 : 접근 방식의이 종류는 experts at Mozilla에서 제안

var myString = " hello my name is "; 
alert("*"+trim(myString)+"*"); 

.

0

트림이나 정규식을 사용하지 않으려면 parseFloat 명령을 사용할 수 있습니다. 이를 구현하려면 parseFloat(x)을 사용하십시오. x가 공백 인 경우 NaN을 반환하거나 숫자가 아닌 다른 경우를 반환합니다.