Yanıtlar:
Yalnızca boşluk olup olmadığını görmek için dizenin tamamını kontrol etmek yerine, boşluk olmayan en az bir karakter olup olmadığını kontrol edin :
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Tarayıcınız trim()işlevi destekliyorsa en basit cevap
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
}
1 veya daha fazla boşluk karakterleri için bu kontroller, eğer o da o zaman yerine boş bir dize maç için +birlikte *.
JQuery kullanıyorsanız, daha basittir.
if ($.trim(val).length === 0){
// string is invalid
}
Dizeyi bu normal ifadeyle karşılaştırmanız yeterlidir:
if(mystring.match(/^\s+$/) === null) {
alert("String is good");
} else {
alert("String contains only whitespace");
}
Dizimin ortasında boşluklara izin vermek, ancak başında veya sonunda olmayan boşluklara izin vermek istediğimde kullandığım normal ifade şuydu:
[\S]+(\s[\S]+)*
veya
^[\S]+(\s[\S]+)*$
Biliyorum bu eski bir soru, ama şöyle bir şey yapabilirsiniz:
if (/^\s+$/.test(myString)) {
//string contains characters and white spaces
}
veya nickf'in dediğini yapıp şunu kullanabilirsiniz:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Bir dizenin yalnızca boşluk içerip içermediğini tespit etmek için aşağıdaki yöntemi kullandım. Ayrıca boş dizelerle eşleşir.
if (/^\s*$/.test(myStr)) {
// the string contains only whitespace
}
Bu hızlı bir çözüm olabilir
return input < "\u0020" + 1;
return input < " 1"; , sadece alfabetik karşılaştırma yapmaktır. Giriş "1" den daha küçük sıralandığı sürece, doğru olarak dönecektir. Örnek: return " asdfv34562345" < "\u0020" + 1;true olarak değerlendirilir.