9

私のコードでは、 if else ブロックを書く必要があります-

when the variable `currentValue` is holding only spaces -> certain code

currentValueしかし、任意のサイズの文字列になる可能性があるため、この条件を記述する方法がわかりません。" "などを保持できます。これを" " 書くcurrentValue!=" "と、単一のスペースがチェックされます。

4

4 に答える 4

25

次のように見える可能性があります

if( !currentValue.trim().length ) {
    // only white-spaces
}

ドキュメント:trim

たとえそれが非常に自明であっても; によって参照される文字currentValueトリムされます。これは基本的に、先頭と末尾のすべての空白文字が削除されることを意味します。文字列全体が空白文字で構成されている場合、それはまとめてクリーンアップされます。つまりlength、結果は で0あり、!0になりますtrue

パフォーマンスについては、このソリューションと@mishikのRegExpの方法を比較しました。.trim()結局のところ、FireFox でははるかに高速ですが、RegExpChrome では高速に見えます。

http://jsperf.com/regexp-vs-trim-performance

于 2013-07-08T10:26:49.790 に答える
9

単に:

if (/^\s*$/.test(your_string)) {
  // Only spaces
}

のみを一致させるにspaceは:

if (/^ *$/.test(your_string)) {
  // Only spaces
}

説明: /^\s*$/- 文字列の先頭、任意の数の空白 (スペース、改行、タブなど)、文字列の末尾に一致します。/^ *$/- 同じですが、スペースのみです。

空の文字列に一致させたくない場合: に置き換え*+、少なくとも 1 つの文字が存在することを確認します。

于 2013-07-08T10:25:00.660 に答える
-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");
}
于 2013-07-08T10:39:35.870 に答える