1368 Stimmen

Zeichenkette in JavaScript trimmen?

Wie kann ich eine Zeichenkette in JavaScript kürzen? Das heißt, wie entferne ich alle Leerzeichen am Anfang und am Ende der Zeichenfolge in JavaScript?

296 Stimmen

Es ist erwähnenswert, dass zwei Jahre nachdem diese Frage gestellt wurde, String.trim() nativ in JavaScript 1.8.1 / ECMAScript 5 hinzugefügt wurde, unterstützt in: Firefox 3.5+, Chrome/Safari 5+, IE9+ (nur im Standardmodus!) siehe die Antwort von scunliffe: stackoverflow.com/a/8522376/8432

47 Stimmen

String.trim() funktioniert auch in Node.js ohne Probleme.

47 Stimmen

Um pingelig zu sein: String.trim() , die Klassenmethode, gibt es in ES5/Node.js nicht; stattdessen, String.prototype.trim() , die Instanzmethode, existiert. Verwendung: ' foo '.trim() pas String.trim(' foo ') .

7voto

rab Punkte 4056

Trimm-Code von angular js Projekt

var trim = (function() {

  // if a reference is a `String`.
  function isString(value){
       return typeof value == 'string';
  } 

  // native trim is way faster: http://jsperf.com/angular-trim-test
  // but IE doesn't have it... :-(
  // TODO: we should move this into IE/ES5 polyfill

  if (!String.prototype.trim) {
    return function(value) {
      return isString(value) ? 
         value.replace(/^\s*/, '').replace(/\s*$/, '') : value;
    };
  }

  return function(value) {
    return isString(value) ? value.trim() : value;
  };

})();

und rufen sie als trim(" hello ")

6voto

Behnam Mohammadi Punkte 5748

Einfach Code verwenden

var str = "       Hello World!        ";
alert(str.trim());

Browser-Unterstützung

Feature         Chrome  Firefox Internet Explorer   Opera   Safari  Edge
Basic support   (Yes)   3.5     9                   10.5    5       ?

Für alte Browser Prototyp hinzufügen

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}

0 Stimmen

Die beste Art zu erklären im Vergleich zu anderen. Aber modifizieren Sie es ein wenig mehr ich meine replace Funktion regexp. Ich habe es nicht ganz verstanden. Könnten Sie mir den regexp-Teil etwas genauer erklären?

2voto

HenryDev Punkte 4355

Hier ist eine sehr einfache Möglichkeit:

function removeSpaces(string){
return string.split(' ').join('');
}

4 Stimmen

"Hallo Welt" -> "helloworld"

3 Stimmen

Diese Antwort ist falsch. trim sollte nur führende und nachgestellte Zeichen entfernen Leerzeichen (einschließlich Tabulatoren und anderer Zeichen). Stattdessen werden alle Leerzeichen, auch die in der Mitte, entfernt.

0 Stimmen

Diese unerklärte Antwort ist falsch und sollte gestrichen werden. Mit anderen Worten, sie ist die richtige Antwort auf eine andere Frage.

1voto

Sie können dies mit einfachem JavaScript tun:

function trimString(str, maxLen) {
if (str.length <= maxLen) {
return str;
}
var trimmed = str.substr(0, maxLen);
return trimmed.substr(0, trimmed.lastIndexOf(' ')) + '…';
}

// Let's test it

sentenceOne = "too short";
sentencetwo = "more than the max length";

console.log(trimString(sentenceOne, 15));
console.log(trimString(sentencetwo, 15));

1voto

AnaMaria Punkte 3370

Ich hatte diese Funktion für trim geschrieben, als die Funktion .trim() in JS noch nicht verfügbar war, das war 2008. Einige der älteren Browser unterstützen die .trim()-Funktion immer noch nicht und ich hoffe, dass diese Funktion jemandem helfen kann.

TRIM-FUNKTION

function trim(str)
{
    var startpatt = /^\s/;
    var endpatt = /\s$/;

    while(str.search(startpatt) == 0)
        str = str.substring(1, str.length);

    while(str.search(endpatt) == str.length-1)
        str = str.substring(0, str.length-1);   

    return str;
}

Erläuterung : Die Funktion trim() akzeptiert ein String-Objekt und entfernt alle Leerzeichen am Anfang und am Ende (Leerzeichen, Tabulatoren und Zeilenumbrüche) und gibt den getrimmten String zurück. Sie können diese Funktion zum Trimmen von Formulareingaben verwenden, um sicherzustellen, dass gültige Daten gesendet werden.

Die Funktion kann beispielsweise auf folgende Weise aufgerufen werden.

form.elements[i].value = trim(form.elements[i].value);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X