私のコードでは、 if else ブロックを書く必要があります-
when the variable `currentValue` is holding only spaces -> certain code
currentValue
しかし、任意のサイズの文字列になる可能性があるため、この条件を記述する方法がわかりません。" "
などを保持できます。これを" "
書くcurrentValue!=" "
と、単一のスペースがチェックされます。
私のコードでは、 if else ブロックを書く必要があります-
when the variable `currentValue` is holding only spaces -> certain code
currentValue
しかし、任意のサイズの文字列になる可能性があるため、この条件を記述する方法がわかりません。" "
などを保持できます。これを" "
書くcurrentValue!=" "
と、単一のスペースがチェックされます。
次のように見える可能性があります
if( !currentValue.trim().length ) {
// only white-spaces
}
ドキュメント:trim
たとえそれが非常に自明であっても; によって参照される文字列currentValue
はトリムされます。これは基本的に、先頭と末尾のすべての空白文字が削除されることを意味します。文字列全体が空白文字で構成されている場合、それはまとめてクリーンアップされます。つまりlength
、結果は で0
あり、!0
になりますtrue
。
パフォーマンスについては、このソリューションと@mishikのRegExpの方法を比較しました。.trim()
結局のところ、FireFox でははるかに高速ですが、RegExp
Chrome では高速に見えます。
単に:
if (/^\s*$/.test(your_string)) {
// Only spaces
}
のみを一致させるにspace
は:
if (/^ *$/.test(your_string)) {
// Only spaces
}
説明: /^\s*$/
- 文字列の先頭、任意の数の空白 (スペース、改行、タブなど)、文字列の末尾に一致します。/^ *$/
- 同じですが、スペースのみです。
空の文字列に一致させたくない場合: に置き換え*
て+
、少なくとも 1 つの文字が存在することを確認します。
試す-:
your_string.split(" ").length
編集:
var your_string = " ";
var x = your_string.split(" ").length - 1;
if ( your_string.length > 0 && (your_string.length - x) == 0 ) {
alert("your_string has only spaces");
}