[javascript] 변수가 null인지 빈 문자열인지 또는 JavaScript에서 모두 공백인지 확인하는 방법은 무엇입니까?

변수가 null인지 또는 모든 빈 공간이 있는지 또는 공백 ( “”)인지 확인해야합니다.

다음이 있지만 작동하지 않습니다.

var addr;
addr = "  ";

if (!addr) {
    // pull error 
}

다음을 수행하면 작동합니다.

if (addr) {

}​

내가 필요한 것은 C # 메서드와 같은 것 String.IsNullOrWhiteSpace(value)입니다.



답변

를 더 가깝게 모방 IsNullOrWhiteSpace하지만 null, 빈 또는 모든 공간 만 감지 하는 비 jQuery 솔루션 :

function isEmptyOrSpaces(str){
    return str === null || str.match(/^ *$/) !== null;
}

…그때:

var addr = '  ';

if(isEmptyOrSpaces(addr)){
    // error 
}

* 편집 *
op는 구체적으로 다음과 같이 말합니다.

var 가 null인지 또는 빈 공간이 있는지 또는 그 문제에 대해 blank인지 확인해야 합니다.

따라서 “공백”은 null, 공백 또는 공백 이상을 포함하지만 내 대답은 op의 특정 질문에 대답하기위한 것입니다. 예를 들어 op는 탭과 같은 것을 포착하지 않을 수 있기 때문에 중요합니다.


답변

if (addr == null || addr.trim() === ''){
  //...
}

null비교도 잡을 것입니다 undefined. false통과 하고 싶다면 을 사용하십시오 !addr. 이전 버전의 브라우저 호환성을 addr.trim()위해 $.trim(addr).


답변

당신이 사용할 수있는 if(addr && (addr = $.trim(addr)))

이것은 addr검사를 수행 할 때 그냥 무시하는 대신 실제로 외부 공백을 제거하는 장점이 있습니다 .

참조 : http://api.jquery.com/jQuery.trim/


답변

isEmptyOrSpaces(str){
    return !str || str.trim() === '';
}


답변

다음과 같은 고유 한 방법을 만들 수 있습니다.

String.IsNullOrWhiteSpace(value)

function IsNullOrWhiteSpace( value) {

    if (value== null) return true;

    return value.replace(/\s/g, '').length == 0;
}


답변

오래된 질문이지만 더 간단한 대답을 거부한다고 생각합니다.

간단하게 다음을 수행 할 수 있습니다.

var addr = "  ";

if (addr && addr.trim()) {

    console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only.");

}


답변

공백을 확인할 때 c # 메서드는 유니 코드 표준을 사용합니다. 공백에는 공백, 탭, 캐리지 리턴 및 기타 인쇄되지 않는 많은 문자 코드가 포함됩니다. 따라서 다음을 사용하는 것이 좋습니다.

function isNullOrWhiteSpace(str){
    return str == null || str.replace(/\s/g, '').length < 1;
}