空白 - javascript 空配列 判定




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)...

isEmpty()メソッドはありません。タイプと長さをチェックする必要があります:

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

testundefinedまたはnull場合、実行時エラーを回避するために型チェックが必要です。


あなたがstr.Empty (strがStringであるという前提条件付き)にstr.Emptyできる最も近いものは次のとおりです:

if (!str.length) { ...

あなたは正規表現で行くこともできます:

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

空文字列か空白文字列かをチェックします。


これらの答えはすべて素晴らしいです。

しかし、私は変数が文字列であり、空白だけを含んでいないことがわかりません(これは私にとっては重要です)。そして、 '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サンプル。


また、空白で埋められた文字列を "空"と見なす場合にも使用します。 あなたはこのRegexでテストすることができます:

!/\S/.test(string); // Returns true if blank.

アンダースコアのjavascriptライブラリhttp://underscorejs.org/は、空の文字列やその他の空のオブジェクトをチェックするのに非常に便利な_.isEmpty()関数を提供しています。

リファレンス: http://underscorejs.org/#isEmpty : http://underscorejs.org/#isEmpty

isEmpty _.isEmpty(object)
列挙可能オブジェクトに値が含まれていない場合(trueを返します。列挙可能な独自プロパティはありません) 文字列と配列のようなオブジェクトの場合、_.isEmptyはlengthプロパティが0かどうかをチェックします。

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

_.isEmpty({});
=> true

その他の非常に便利なアンダースコア関数には、
http://underscorejs.org/#isNull _.isNull(object)
http://underscorejs.org/#isUndefined _.isUndefined(value)
http://underscorejs.org/#has _.has(object, key)


一方、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

上記のすべてが良いですが、これはさらに良くなります。 使用!!そうでない )演算子。

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

または型キャストを使用する:

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

どちらも同じ関数を実行し、変数をブール値にキャストします。ここで、 strは変数です。
null,undefined,0,000,"",false falseを返します。
文字列 "0"と空白 ""に対してtrueを返します。


文字列が空であるかどうかを検査するために、nullまたはundefinedを使用します。

function isEmpty(str) {
    return (!str || 0 === str.length);
}

文字列が空白、ヌル、または未定義であるかどうかを調べるために、私は以下を使用します:

function isBlank(str) {
    return (!str || /^\s*$/.test(str));
}

文字列が空白か空白だけが含まれているかどうかを確認するには:

String.prototype.isEmpty = function() {
    return (this.length === 0 || !this.trim());
};

文字列が空のスペースの束ではないことを確認する必要がある場合(私はこれがフォームの検証用であると仮定しています)、スペースを置換する必要があります。

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

私が使う :

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

私は、文字列以外の非空白/ヌル値をテスター関数に渡すと、何が起こるかを調べました。 多くの知っているように、(0 == "")はjavascriptではtrueですが、0は値であり、空でもnullでもないため、テストすることができます。

次の2つの関数は、未定義、null、空白/空白の値に対してのみtrueを返し、数値、ブール値、オブジェクト、式など他のすべてに対してfalseを返します。

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

もっと複雑な例が存在しますが、これらは単純であり、一貫した結果をもたらします。 未定義のテストは、(value == null)checkに含まれているので、テストする必要はありません。 また、C#の動作を以下のようにStringに追加することで、C#の動作を模倣することもできます。

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

Stringクラスのインスタンスがnullの場合、エラーになるので、Stringsプロトタイプに入れたくありません。

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; } }]
];

私は組み合わせを使用し、最速のチェックが最初です。

function isBlank(pString){
    if (!pString || pString.length == 0) {
        return true;
    }
    // checks for a non-white space character 
    // which I think [citation needed] is faster 
    // than removing all the whitespace and checking 
    // against an empty string
    return !/[^\s]+/.test(pString);
}

私は通常このようなものを使っていますが、

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

空文字列だけでなく空文字列も検出する必要がある場合は、Goralの答えに追加します。

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

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

空白文字列を無視すると、これを使用して空、空、未定義をチェックできます。

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

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

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

簡潔で、未定義のプロパティでも機能しますが、最も読みにくいものです。


関数:

function Is_Empty_or_Undefined (MyVar)
{
   return 
   ( 
        (typeof MyVar== 'undefined')
                    ||
        (MyVar == null) 
                    ||
        (MyVar == false)  //same as: !MyVariable
                    ||
        (MyVar.length == 0)
                    ||
        (MyVar == "")
                    ||
        (MyVar.replace(/\s/g,"") == "")
                    ||
        (!/[^\s]/.test(MyVar))
                    ||
        (/^\s*$/.test(MyVar))
  );
}

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