指定された値がnullまたは空文字でないことをチェックする関数です。 コピペしてそのままお使い頂けます。
サンプル
例)引数に受け取った値がnullまたは空文字の場合はtrueを返します。
1 2 3 4 5 6 7 8 |
/** * ブランクチェックFunction * @param {object} val - 判定する値 * @return {boolean} true:ブランクである false:ブランクでない */ function isBlank(val){ return (val == null || val === ""); } |
実行サンプル
ボタンを押すと、テキストボックスに指定した値がブランクかどうか判定します。
解説
- 「===」での比較は厳密等価比較といい、値だけでなく型も同じかどうかを比較する演算子です。
- nullの判定は「==」で行うことにより、undefinedにも対応します。
複数のチェックをまとめてする場合は、どのようにしたらよろしいでしょうか?
コメントありがとうございます。
複数のチェックをまとめてするには、functionを1つ作成して、
その中で複数チェックしたいものを羅列してチェックすればよいかと思います。
(例)
function fukusuCheck(){
//1つめのチェック
if(isBlank(x1)){
//ブランクの場合の処理
}
//2つめのチェック
if(isBlank(x2)){
//ブランクの場合の処理
}
//3つめのチェック
if(isBlank(x3)){
//ブランクの場合の処理
}
...
}
時間の経っている記事なので今更なコメントだとは思いますが、「js isblank」で検索した際に上位出ているようなので補足しておきたいのですが、慣例的にisBlankは「" "」のような空白やタブなどのみで構成される場合にもtrueを返すのが常です。上記のような振る舞いであればisEmptyという命名が妥当かと思われます。
また、複数チェックに対する回答もコピペを多用するような手法はあまり好ましくないです。単純に全件がblankでないことを確認するなら「[x1, x2, x3].every(x => !isBlank(x)))」などと記述するのがよりスマートだと思います。細かい説明は省きますが、どの要素がblankかによって処理が変わるのであればポリモーフィズムなどを活用すればループを用いてシンプルな実装が可能です。
参考:
Array.prototype.every(), Array.prototype.some(), Array.prototype.forEach()