文字列に空白のみが含まれているかどうかを確認する最良の方法は何ですか?
文字列には、空白を含む文字結合を含めることができますが、just空白は使用できません。
文字列全体をチェックして空白のみがあるかどうかを確認する代わりに、少なくとも1文字のnon whitespaceがあるかどうかを確認します。
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
if (/^\s+$/.test(myString))
{
//string contains only whitespace
}
これは、1つ以上の空白文字をチェックします。空の文字列にも一致する場合は、+
を*
に置き換えます。
ブラウザがtrim()
関数をサポートしている場合の最も簡単な答え
if (myString && !myString.trim()) {
//First condition to check if string is not empty
//Second condition checks if string contains just whitespace
}
さて、jQueryを使用している場合は、より簡単です。
if ($.trim(val).length === 0){
// string is invalid
}
この正規表現に対して文字列をチェックするだけです:
if(mystring.match(/^\s+$/) === null) {
alert("String is good");
} else {
alert("String contains only whitespace");
}
if (!myString.replace(/^\s+|\s+$/g,""))
alert('string is only whitespace');
文字列の途中にスペースを許可したいときに使用した正規表現ですが、先頭または末尾ではありませんでした:
[\S]+(\s[\S]+)*
または
^[\S]+(\s[\S]+)*$
これは古い質問ですが、次のようなことができます:
if (/^\s+$/.test(myString)) {
//string contains characters and white spaces
}
または、 nickf が言ったことを実行して使用できます:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
次の方法を使用して、文字列に空白のみが含まれているかどうかを検出しました。また、空の文字列にも一致します。
if (/^\s*$/.test(myStr)) {
// the string contains only whitespace
}
これは迅速な解決策になります
return input < "\u0020" + 1;