C # String.IsNullOrEmpty Javascript 해당


86

String.IsNullOrEmpty(string)자바 스크립트 의 C # 에 해당하는 문자열 호출을 시도하고 싶습니다 . 나는 간단한 전화가 있다고 가정하고 온라인에서 보았지만 찾을 수 없었다.

지금은 if(string === "" || string === null)진술을 사용하고 있지만 미리 정의 된 방법을 사용하고 싶습니다 (어떤 이유로 인해 미끄러지는 인스턴스가 계속 발생합니다).

가장 가까운 자바 스크립트 (또는 jquery가있는 경우) 호출은 무엇입니까?



3
@ DanielA.White 인수가 나 같은 C #을 개발자, 같은 있지만은, (제목 포함)이 질문은 가능성이 찾을 수있다
다니엘 Armanasco

답변:


211

당신은 지나치게 생각하고 있습니다. null 및 빈 문자열은 모두 JavaScript에서 거짓 값입니다.

if(!theString) {
 alert("the string is null or empty");
}

거짓 :

  • 그릇된
  • 없는
  • 찾으시는 주소가 없습니다
  • 빈 문자열 ''
  • 숫자 0
  • 수 NaN

16
놀랍게도 많은 찬성표를 얻었습니다. 이 대답은 틀 렸습니다. 거짓 값은 0이 될 것이라고 스스로 말씀하셨습니다. 사용자가 필드에 0을 입력하면 이것은 빈 문자열이 아닙니다. 빈 문자열은 말 그대로 "빈"문자열입니다.
KingOfHypocrites

3
사용자가 0을 입력하면 값은 숫자 0이 아닌 "0"문자열이됩니다. 따라서 여전히 사실입니다. 최고의 솔루션 인 KingOfHypocrites를 게시 해주세요.
Jonas T

2
KingOfHypocrites는 문자열 "0"이 잘못된 결과를 제공한다는 점에서 옳습니다 : "0"== false는 true를 반환합니다! "0"== false는 true를 반환합니다
Martien de Jong

2
유능한. 그래도 데이터 세트를 알고 있습니다. "0"또는 "false"가 가능한 입력 인 경우이 솔루션이 항상 작동하는 것은 아닙니다.
Nevyn

12

어떤 이유로 든 null및 만 테스트하려는 empty경우 다음을 수행 할 수 있습니다.

function isNullOrEmpty( s ) 
{
    return ( s == null || s === "" );
}

참고 : 주석에 언급 된 @Raynos로 정의되지 않은 것도 포착합니다.


최적화 가능return (s == null || s === "")
Raynos

@Raynos-null과 관련하여 === 대신 == 이유는 무엇입니까? 전달 된 객체가 정의되지 않은 경우 어떻게됩니까? 정의되지 않은 <> null 맞죠?
Code Maverick

s == nullnull& undefined이후 둘 다 잡는다null == undefined
Raynos

@Raynos-알았어요.하지만 정말 undefined 또는 null을 알고 싶은 경우 ===를 사용해야합니다. 맞나요?
Code Maverick


5

당신이 알고있는 경우 string숫자 아니라,이 작동합니다 :

if (!string) {
  .
  .
  .

문자열 "0"은 거짓이므로 문자열이 숫자인지 확인할 필요가 없습니다.
JoJo

1
예, 문자열 "0"은 string사실 이지만 변수 가 실제로 문자열이 아니라 숫자 0이면 string거짓입니다. 그것이 string실제 문자열이거나 null 이라는 것을 안다면 문제가되지 않을 것 입니다.
awm 2011

3

당신은 할 수 있습니다

if(!string)
{
  //...
}

이것은 string정의되지 않은 null 및 빈 문자열을 확인합니다.


1

명확하게 if(!theString){//...}말하면 theString이 선언되지 않은 변수 인 경우 정의되지 않은 오류가 발생하고 참이 아닙니다. 반면에 다음이있는 경우 : if(!window.theString){//...}또는 var theString; if(!theString){//...}예상대로 작동합니다. 변수가 선언되지 않을 수있는 경우 (속성이거나 단순히 설정되지 않은 경우) 다음을 사용해야합니다.if(typeof theString === 'undefined'){//...}

내가 선호하는 것은 당신을 위해 그것을 감싸는 프로토 타입 함수를 만드는 것입니다.


1

정답으로 표시된 답변에는 작은 오류가 포함되어 있으므로 여기에 해결책을 제시하기위한 최선의 시도가 있습니다. 나는 많은 사람들이 자바 스크립트에서 문자열과 숫자를 혼합하고 있다고 가정하기 때문에 두 가지 옵션이 있습니다. 하나는 문자열을 사용하고 다른 하나는 문자열 또는 숫자를 사용합니다.

단계 :-객체가 null이면 null 또는 빈 문자열입니다. -유형이 문자열 (또는 숫자)이 아니면 문자열 값은 null이거나 비어 있습니다. 참고 : 기본 설정에 따라 여기에서도 예외가 발생할 수 있습니다. -잘린 문자열 값의 길이가 1보다 작 으면 null이거나 비어 있습니다.

var stringIsNullOrEmpty = function(theString)
{
    return theString == null || typeof theString != "string" || theString.trim().length < 1;
}

var stringableIsNullOrEmpty = function(theString)
{
    if(theString == null) return true;
    var type = typeof theString;
    if(type != "string" && type != "number") return true;
    return theString.toString().trim().length < 1;
}

1

논리로 말할 수 있습니다

변수 이름이 strVal이고 null인지 비어 있는지 확인한다고 가정 해 보겠습니다.

if (typeof (strVal) == 'string' && strVal.length > 0) 
{
// is has a value and it is not null  :)
}
else
{
//it is null or empty :(
}

1

다음과 같은 여러 장소에서 재사용 할 수있는 하나의 유틸리티 메소드를 작성할 수 있습니다.

 function isNullOrEmpty(str){
    var returnValue = false;
    if (  !str
        || str == null
        || str === 'null'
        || str === ''
        || str === '{}'
        || str === 'undefined'
        || str.length === 0 ) {
        returnValue = true;
    }
    return returnValue;
  }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.