.NETのJavaScriptと同等の String.IsNullOrWhitespace
クライアント側のテキストボックスに目に見えるテキストがあるかどうかを確認できるように?
テキストボックスの値をポストバックするよりも最初にクライアント側でこれを行い、サーバー側の検証のみに依存します。
独自のロール :
function isNullOrWhitespace( input ) {
if (typeof input === 'undefined' || input == null) return true;
return input.replace(/\s/g, '').length < 1;
}
簡潔でモダンなクロスブラウザ実装の場合、次のようにします。
function isNullOrWhitespace( input ) {
return !input || !input.trim();
}
jsFiddle です。以下の注意事項。
現在受け入れられている答え は、次のように簡略化できます。
function isNullOrWhitespace( input ) {
return (typeof input === 'undefined' || input == null)
|| input.replace(/\s/g, '').length < 1;
}
さらに、偽造を活用して、さらに次のことを行います。
function isNullOrWhitespace( input ) {
return !input || input.replace(/\s/g, '').length < 1;
}
trim()は最近のすべてのブラウザで利用可能 なので、オプションで正規表現を削除できます:
function isNullOrWhitespace( input ) {
return !input || input.trim().length < 1;
}
そして、ミックスにもう少し虚偽を追加して、最終的な(簡略化された)バージョンを生成します。
function isNullOrWhitespace( input ) {
return !input || !input.trim();
}
いいえ、しかし、あなたは1つを書くことができます
function isNullOrWhitespace( str )
{
// Does the string not contain at least 1 non-whitespace character?
return !/\S/.test( str );
}
これを試してみてください
/**
* Checks the string if undefined, null, not typeof string, empty or space(s)
* @param {any} str string to be evaluated
* @returns {boolean} the evaluated result
*/
function isStringNullOrWhiteSpace(str) {
return str === undefined || str === null
|| typeof str !== 'string'
|| str.match(/^ *$/) !== null;
}
このように使用できます
isStringNullOrWhiteSpace('Your String');
2つのベストアンサーの関連部分を引き出すと、次のような結果が得られます。
function IsNullOrWhitespace(input) {
if (typeof input === 'undefined' || input == null) return true;
return !/\S/.test(input); // Does it fail to find a non-whitespace character?
}
この回答の残りの部分は、この回答とデクスターの回答のパフォーマンスの違いに関心がある人のみを対象としています。どちらも同じ結果を生成しますが、このコードはわずかに高速です。
私のコンピューターでは、次のコードでQUnitテストを使用します。
var count = 100000;
var start = performance.now();
var str = "This is a test string.";
for (var i = 0; i < count; ++i) {
IsNullOrWhitespace(null);
IsNullOrWhitespace(str);
}
var end = performance.now();
var elapsed = end - start;
assert.ok(true, "" + count + " runs of IsNullOrWhitespace() took: " + elapsed + " milliseconds.");
結果は次のとおりです。
正規表現/\S/
を使用して、フィールドが空白かどうかをテストし、それをnullチェックと組み合わせることができます。
例:
if(textBoxVal === null || textBoxVal.match(/\S/)){
// field is invalid (empty or spaces)
}
trim()
は、JSにはない便利な文字列関数です。
追加してください:
_String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,"") }
_
次に:if (document.form.field.value.trim() == "")
独自に作成する必要があります。
function isNullOrWhitespace(strToCheck) {
var whitespaceChars = "\s";
return (strToCheck === null || whitespaceChars.indexOf(strToCheck) != -1);
}