javascript - 체크 - jquery null 치환




JavaScript에서 빈 문자열을 어떻게 확인합니까? (20)

thread 를 보았지만 JavaScript 관련 예제가 표시되지 않았습니다. JavaScript에서 사용할 수있는 간단한 string.Empty 가 있습니까, 아니면 "" 을 확인하는 것입니까?


  1. var a; 확인하십시오 var a; 있다
  2. 그 값에서 false spaces 을 잘라 내고 emptiness 을 시험하십시오.

    if ((a)&&(a.trim()!=''))
    {
      // if variable a is not empty do this 
    }
    

if가 정확히 빈 문자열인지 확인합니다.

if(val==="")...

빈 문자열인지 또는 값이없는 (null, undefined, 0, NaN, false, ...) 논리 논리적 값인지 확인합니다.

if(!val)...

검사하는 변수가 문자열이라고 가정하지 마십시오. 이 var에 길이가 있으면 문자열이라고 가정하지 마십시오.

문제는 앱이 무엇을해야하고 받아 들일 수 있는지에 대해 신중히 생각하는 것입니다. 강력한 무언가를 구축하십시오.

메소드 / 함수가 비어 있지 않은 문자열 만 처리하고 인수가 비어 있지 않은 문자열인지 테스트하고 '트릭'을 수행하지 않는 경우

신중하게 여기 몇 가지 조언을 따르는 경우 폭발할만한 예가 될 수 있습니다.


var getLastChar = function (str) {
 if (str.length > 0)
   return str.charAt(str.length - 1)
}

getLastChar('hello')
=> "o"

getLastChar([0,1,2,3])
=> TypeError: Object [object Array] has no method 'charAt'

그래서 나는


if (myVar === '')
  ...


공백 문자열을 무시하면 null, 비어 있고 정의되지 않은 항목을 확인할 수 있습니다.

var obj = {};
(!!obj.str) //returns false

obj.str = "";
(!!obj.str) //returns false

obj.str = null;
(!!obj.str) //returns false

간결하고 정의되지 않은 속성에 대해서는 작동하지만 가장 읽기 쉽지 않습니다.


나는 가장 효율적인 방법에 대해 너무 걱정하지 않을 것입니다. 당신의 의도에 가장 명확한 것을 사용하십시오. 나를 위해 그것은 보통 strVar == "" 입니다.

편집 : Constantin 에서 의견 당, 만약 strVar 결국 정수 0 값을 포함하는 끝낼 수 있다면, 그 참으로 그 의도 - 명확한 상황 중 하나가 될 것입니다.


나는 문자열에 null 문자의 가능성을 고려한 대답을 발견하지 못했습니다. 예를 들어, 우리가 null 문자 스트링을 가지고 있다면 :

var y = "\0"; // an empty string, but has a null character
(y === "") // false, testing against an empty string does not work
(y.length === 0) // false
(y) // true, this is also not expected
(y.match(/^[\s]*$/)) // false, again not wanted

nullness를 테스트하려면 다음과 같이 할 수 있습니다.

String.prototype.isNull = function(){ 
  return Boolean(this.match(/^[\0]*$/)); 
}
...
"\0".isNull() // true

null 문자열과 빈 문자열에서 작동하며 모든 문자열에서 액세스 할 수 있습니다. 또한 다른 JavaScript 공백 또는 공백 문자 (즉, 줄 바꿈하지 않는 공간, 바이트 순서 표시, 줄 / 단락 분리 문자 등)를 포함하도록 확장 될 수 있습니다.


나는 보통 이것과 같은 것을 사용한다.

if (!str.length) {
//do some thing
}

나는 사용한다 :

function empty(e) {
  switch (e) {
    case "":
    case 0:
    case "0":
    case null:
    case false:
    case typeof this == "undefined":
      return true;
    default:
      return false;
  }
}

empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
    return ""
  })) // false

당신은 또한 정규 표현식으로 갈 수 있습니다 :

if((/^\s*$/).test(str)) { }

비어 있거나 공백으로 채워진 문자열을 검사합니다.


당신이 str.Empty 도달 할 수있는 가장 가까운 것은 (str이 String이라는 전제 조건으로) :

if (!str.length) { ...

많은 답변과 다양한 가능성!

빠르고 간단한 구현을위한 의심의 여지없이 승자는 : if (!str.length) {...}

그러나 다른 많은 예제도 사용할 수 있습니다. 이 기능을 수행하는 가장 좋은 방법은 다음과 같습니다.

function empty(str)
{
    if (typeof str == 'undefined' || !str || str.length === 0 || str === "" || !/[^\s]/.test(str) || /^\s*$/.test(str) || str.replace(/\s/g,"") === "")
    {
        return true;
    }
    else
    {
        return false;
    }
}

과도한 약간, 나는 알고있다.


문자열이 단지 빈 공간이 아닌지 확인해야하는 경우 (이 양식 유효성 검사를위한 것으로 가정 함) 공백을 대체해야합니다.

if(str.replace(/\s/g,"") == ""){
}

밑줄 자바 스크립트 라이브러리 http://underscorejs.org/ 는 빈 문자열 및 기타 빈 객체를 확인하는 데 매우 유용한 _.isEmpty() 함수를 제공합니다.

참조 : http://underscorejs.org/#isEmpty

isEmpty _.isEmpty(object)
열거 가능 객체에 값이없는 경우 true를 반환합니다 (열거 가능 자체 속성 없음). 문자열과 배열과 같은 객체의 경우 _.isEmpty는 length 속성이 0인지 확인합니다.

_.isEmpty([1, 2, 3]);
=> false

_.isEmpty({});
=> 참

기타 매우 유용한 밑줄 함수는 다음과 같습니다.
http://underscorejs.org/#isNull _.isNull(object)
http://underscorejs.org/#isUndefined _.isUndefined(value)
http://underscorejs.org/#has _.has(object, key)


빈 문자열뿐만 아니라 빈 문자열도 감지해야하는 경우 Goral의 대답에 추가합니다.

function isEmpty(s){
    return !s.length;    
}

function isBlank(s){
    return isEmpty(s.trim());    
}

위의 모든 것이 좋지만 이것은 더 나아질 것입니다. 사용 !! ( 아닌 ) 연산자.

if(!!str){
some code here;
}

또는 유형 캐스팅 사용 :

if(Boolean(str)){
    codes here;
}

두 함수 모두 똑같은 함수를 수행하고, 변수를 boolean으로 캐스트합니다. str 은 변수입니다.
null,undefined,0,000,"",false false 대해 false 를 반환합니다.
문자열 "0"과 공백 ""에 대해 true 리턴 true .


이 모든 대답은 훌륭합니다.

하지만 변수가 문자열인지, 공백 만 들어 있지 않은지 (이것은 내게 중요 함) '0'(문자열)을 포함 할 수 있는지를 확인할 수 없습니다.

내 버전 :

function empty(str){
    return !str || !/[^\s]+/.test(str);
}

empty(null); // true
empty(0); // true
empty(7); // false
empty(""); // true
empty("0"); // false
empty("  "); // true

샘플 jsfiddle .


테스터 함수에 문자열이 아닌 비어 있지 않은 / null 값을 전달하면 어떤 일이 발생하는지 연구했습니다. 많은 사람들이 알고 있듯이 (0 == "") 자바 스크립트에서는 true이지만, 0은 값이며 비어 있거나 null이 아니기 때문에 테스트 할 수 있습니다.

다음 두 함수는 정의되지 않은 null, 공백 / 공백 값에만 true를, 숫자, 부울, 객체, 표현식 등과 같은 모든 것에 대해서는 false를 반환합니다.

function IsNullOrEmpty(value)
{
    return (value == null || value === "");
}
function IsNullOrWhiteSpace(value)
{
    return (value == null || !/\S/.test(value));
}

보다 복잡한 예제가 있지만 단순하고 일관된 결과를 제공합니다. undefined를 검사 할 필요가 없습니다. 왜냐하면 (value == null) check에 포함되어 있기 때문입니다. 다음과 같이 문자열에 추가하여 C # 동작을 모방 할 수도 있습니다.

String.IsNullOrEmpty = function (value) { ... }

String 클래스의 인스턴스가 null이면 오류가 발생하므로 String 프로토 타입에 넣고 싶지는 않습니다.

String.prototype.IsNullOrEmpty = function (value) { ... }
var myvar = null;
if (1 == 2) { myvar = "OK"; } // could be set
myvar.IsNullOrEmpty(); // throws error

다음 값 배열로 테스트했습니다. 의심스러운 경우 함수를 테스트하기 위해 루프를 반복 할 수 있습니다.

// Helper items
var MyClass = function (b) { this.a = "Hello World!"; this.b = b; };
MyClass.prototype.hello = function () { if (this.b == null) { alert(this.a); } else { alert(this.b); } };
var z;
var arr = [
// 0: Explanation for printing, 1: actual value
    ['undefined', undefined],
    ['(var) z', z],
    ['null', null],
    ['empty', ''],
    ['space', ' '],
    ['tab', '\t'],
    ['newline', '\n'],
    ['carriage return', '\r'],
    ['"\\r\\n"', '\r\n'],
    ['"\\n\\r"', '\n\r'],
    ['" \\t \\n "', ' \t \n '],
    ['" txt \\t test \\n"', ' txt \t test \n'],
    ['"txt"', "txt"],
    ['"undefined"', 'undefined'],
    ['"null"', 'null'],
    ['"0"', '0'],
    ['"1"', '1'],
    ['"1.5"', '1.5'],
    ['"1,5"', '1,5'], // valid number in some locales, not in js
    ['comma', ','],
    ['dot', '.'],
    ['".5"', '.5'],
    ['0', 0],
    ['0.0', 0.0],
    ['1', 1],
    ['1.5', 1.5],
    ['NaN', NaN],
    ['/\S/', /\S/],
    ['true', true],
    ['false', false],
    ['function, returns true', function () { return true; } ],
    ['function, returns false', function () { return false; } ],
    ['function, returns null', function () { return null; } ],
    ['function, returns string', function () { return "test"; } ],
    ['function, returns undefined', function () { } ],
    ['MyClass', MyClass],
    ['new MyClass', new MyClass()],
    ['empty object', {}],
    ['non-empty object', { a: "a", match: "bogus", test: "bogus"}],
    ['object with toString: string', { a: "a", match: "bogus", test: "bogus", toString: function () { return "test"; } }],
    ['object with toString: null', { a: "a", match: "bogus", test: "bogus", toString: function () { return null; } }]
];

한편 우리는 null, undefined, '', {}, [] 와 같은 모든 '빈'을 검사하는 하나의 함수를 가질 수 있습니다. 그래서 나는 이것을 썼다.

var isEmpty = function(data) {
    if(typeof(data) === 'object'){
        if(JSON.stringify(data) === '{}' || JSON.stringify(data) === '[]'){
            return true;
        }else if(!data){
            return true;
        }
        return false;
    }else if(typeof(data) === 'string'){
        if(!data.trim()){
            return true;
        }
        return false;
    }else if(typeof(data) === 'undefined'){
        return true;
    }else{
        return false;
    }
}

사례 및 결과 사용.

console.log(isEmpty()); // true
console.log(isEmpty(null)); // true
console.log(isEmpty('')); // true
console.log(isEmpty('  ')); // true
console.log(isEmpty(undefined)); // true
console.log(isEmpty({})); // true
console.log(isEmpty([])); // true
console.log(isEmpty(0)); // false
console.log(isEmpty('Hey')); // false

isEmpty() 메서드가 없으므로 유형과 길이를 확인해야합니다.

if (typeof test === 'string' && test.length === 0){
  ...

testundefined 거나 null 경우 런타임 오류를 피하기 위해 유형 검사가 필요합니다.


function tell()
{
var pass = document.getElementById('pasword').value;
var plen = pass.length;

now you can check if your string is empty as like 
if(plen==0)
{
         alert('empty');
}
else
{
   alert('you entered something');
}
}


<input type='text' id='pasword' />

필드가 비어 있는지 확인하는 일반적인 방법이기도합니다.





is-empty