Jawaban:
Alih-alih memeriksa seluruh string untuk melihat apakah hanya ada spasi putih, cukup periksa untuk melihat apakah setidaknya ada satu karakter dari spasi non :
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Jawaban paling sederhana jika browser Anda mendukung trim()
fungsi ini
if (myString && !myString.trim()) {
//First condition to check if string is not empty
//Second condition checks if string contains just whitespace
}
if (/^\s+$/.test(myString))
{
//string contains only whitespace
}
ini memeriksa 1 atau lebih karakter spasi putih, jika Anda juga cocok dengan string kosong kemudian ganti +
dengan *
.
Nah, jika Anda menggunakan jQuery, itu lebih sederhana.
if ($.trim(val).length === 0){
// string is invalid
}
Cukup periksa string pada regex ini:
if(mystring.match(/^\s+$/) === null) {
alert("String is good");
} else {
alert("String contains only whitespace");
}
Ekspresi reguler yang akhirnya saya gunakan ketika saya ingin memberikan spasi di tengah-tengah string saya, tetapi tidak di awal atau akhir adalah ini:
[\S]+(\s[\S]+)*
atau
^[\S]+(\s[\S]+)*$
Jadi, saya tahu ini adalah pertanyaan lama, tetapi Anda dapat melakukan sesuatu seperti:
if (/^\s+$/.test(myString)) {
//string contains characters and white spaces
}
atau Anda dapat melakukan apa yang dikatakan dan digunakan nickf :
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Saya telah menggunakan metode berikut untuk mendeteksi jika string hanya berisi spasi putih. Ini juga cocok dengan string kosong.
if (/^\s*$/.test(myStr)) {
// the string contains only whitespace
}
Ini bisa menjadi solusi cepat
return input < "\u0020" + 1;
return input < " 1";
Yang hanya melakukan perbandingan alfabet. Selama input diurutkan lebih rendah dari "1", itu akan mengembalikan true. Contoh: return " asdfv34562345" < "\u0020" + 1;
mengevaluasi ke true.