1 つのスペースを含む文字列の長さは、常に 1 に等しくなります。
alert('My str length: ' + str.length);
スペースは文字なので、次のようになります。
str = " ";
alert('My str length:' + str.length); // My str length: 3
空の文字列とスペースのみを含む文字列を区別するにはどうすればよいですか? スペースのみを含む文字列を検出するにはどうすればよいですか?
1 つのスペースを含む文字列の長さは、常に 1 に等しくなります。
alert('My str length: ' + str.length);
スペースは文字なので、次のようになります。
str = " ";
alert('My str length:' + str.length); // My str length: 3
空の文字列とスペースのみを含む文字列を区別するにはどうすればよいですか? スペースのみを含む文字列を検出するにはどうすればよいですか?
これを実現するには、正規表現を使用して文字列内の空白をすべて削除します。結果の文字列の長さが である場合、0
元の文字列に空白のみが含まれていることを確認できます。これを試して:
var str = " ";
if (!str.replace(/\s/g, '').length) {
console.log('string only contains whitespace (ie. spaces, tabs or line breaks)');
}
最速の解決策は、正規表現プロトタイプ関数test()を使用して、スペース、タブ、改行以外の文字を探すことです\S
。
if (!/\S/.test(str)) {
// Didn't find something other than a space which means it's empty
}
非常に長い文字列がある場合、スペース以外の文字が見つかるとすぐに処理が停止するため、大きな違いが生じる可能性があります。
文字列のトリム関数を作成することで、文字列値をトリムできます。
String.prototype.trim = function () {
return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
これで、すべての文字列で使用できるようになり、次のように使用できます。
str.trim().length// Result will be 0
このメソッドを使用して、文字列の最初と最後の空白を削除することもできます。
" hello ".trim(); // Result will be "hello"