Eine Zeichenfolgenlänge, die ein Leerzeichen enthält, ist immer gleich 1:
alert('My str length: ' + str.length);
Der Raum ist ein Charakter, also:
str = " ";
alert('My str length:' + str.length); // My str length: 3
Wie kann ich zwischen einer leeren Zeichenfolge und einer Zeichenfolge unterscheiden, die nur Leerzeichen enthält? Wie kann ich eine Zeichenfolge erkennen, die nur Leerzeichen enthält?
javascript
Luca
quelle
quelle
0
. Oder verwenden Sie einen regulären Ausdruck, um nur Whitespace-Zeichenfolgen abzugleichen ...Antworten:
Um dies zu erreichen, können Sie einen regulären Ausdruck verwenden, um alle Leerzeichen in der Zeichenfolge zu entfernen. Wenn die Länge der resultierenden Zeichenfolge gleich ist
0
, können Sie sicher sein, dass das Original nur Leerzeichen enthält. Versuche dies:var str = " "; if (!str.replace(/\s/g, '').length) { console.log('string only contains whitespace (ie. spaces, tabs or line breaks)'); }
quelle
Die schnellste Lösung wäre die Verwendung des Regex-Prototyp-Funktionstests () und die Suche nach Zeichen, bei denen es sich nicht um Leerzeichen oder Zeilenumbrüche handelt
\S
:if (/\S/.test(str)) { // found something other than a space or line break }
Wenn Sie eine super lange Saite haben, kann dies einen signifikanten Unterschied machen.
quelle
Ähnlich wie bei Rorys Antwort können Sie mit ECMA 5 jetzt einfach anrufen,
str.trim().length
anstatt einen regulären Ausdruck zu verwenden. Wenn der resultierende Wert 0 ist, wissen Sie, dass Sie eine Zeichenfolge haben, die nur Leerzeichen enthält.if (!str.trim().length) { console.log('str is empty!'); }
Weitere Informationen zum Trimmen finden Sie hier .
quelle
Das Entfernen des Leerzeichens aus einer Zeichenfolge kann mithilfe von erfolgen
String.trim()
.Um zu überprüfen, ob eine Zeichenfolge null oder undefiniert ist, können Sie überprüfen, ob die Zeichenfolge selbst falsch ist. In diesem Fall ist sie null, undefiniert oder eine leere Zeichenfolge. Diese erste Prüfung ist notwendig, da versucht , auf Methoden aufzurufen
null
oderundefined
zu einem Fehler führen. Um zu überprüfen, ob es nur Leerzeichen enthält, kann nach dem Zuschneiden überprüft werden, ob die Zeichenfolge falsch ist. Dies bedeutet, dass es sich zu diesem Zeitpunkt um eine leere Zeichenfolge handelt.if(!str || !str.trim()){ //str is null, undefined, or contains only spaces }
Wenn Sie sicher sind, dass die Variable eine Zeichenfolge ist, ist nur die zweite Überprüfung erforderlich.
if(!str.trim()){ console.log("str is empty or contains only spaces"); }
quelle
Sie können Ihren String-Wert kürzen, indem Sie eine Trimmfunktion für Ihre Strings erstellen.
String.prototype.trim = function () { return this.replace(/^\s*/, "").replace(/\s*$/, ""); }
Jetzt ist es für jeden String verfügbar und Sie können es als verwenden
str.trim().length// Result will be 0
Sie können diese Methode auch verwenden, um die Leerzeichen am Anfang und Ende des Strings zu entfernen, d. H.
" hello ".trim(); // Result will be "hello"
quelle
Trimmen Sie Ihren String-Wert, indem Sie eine Trimmfunktion erstellen
var text = " "; if($.trim(text.length == 0){ console.log("Text is empty"); } else { console.log("Text is not empty"); }
quelle