Antworten:
Statt die gesamte Zeichenfolge zu überprüfen , um zu sehen , ob es nur Leerzeichen ist, überprüft nur um zu sehen , ob es zumindest ist ein Zeichen von nicht Leerzeichen:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Einfachste Antwort, wenn Ihr Browser die trim()
Funktion unterstützt
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
}
Dadurch wird nach 1 oder mehr Leerzeichen gesucht. Wenn Sie auch eine leere Zeichenfolge verwenden möchten, ersetzen Sie diese +
durch *
.
Wenn Sie jQuery verwenden, ist dies einfacher.
if ($.trim(val).length === 0){
// string is invalid
}
Überprüfen Sie einfach die Zeichenfolge anhand dieses regulären Ausdrucks:
if(mystring.match(/^\s+$/) === null) {
alert("String is good");
} else {
alert("String contains only whitespace");
}
Der reguläre Ausdruck, den ich letztendlich verwendet habe, wenn ich Leerzeichen in der Mitte meiner Zeichenfolge zulassen möchte, aber nicht am Anfang oder Ende, war folgender:
[\S]+(\s[\S]+)*
oder
^[\S]+(\s[\S]+)*$
Ich weiß, dass dies eine alte Frage ist, aber Sie könnten so etwas tun:
if (/^\s+$/.test(myString)) {
//string contains characters and white spaces
}
oder du kannst tun, was nickf gesagt hat und verwenden:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Ich habe die folgende Methode verwendet, um festzustellen, ob eine Zeichenfolge nur Leerzeichen enthält. Es stimmt auch mit leeren Zeichenfolgen überein.
if (/^\s*$/.test(myStr)) {
// the string contains only whitespace
}
Dies kann eine schnelle Lösung sein
return input < "\u0020" + 1;
return input < " 1";
Was macht nur alphabetische Vergleiche. Solange die Eingabe niedriger als "1" sortiert ist, wird true zurückgegeben. Beispiel: return " asdfv34562345" < "\u0020" + 1;
ergibt true.