So entfernen Sie den Leerraum am Anfang der Zeichenfolge

Lesezeit: 4 Minuten

Benutzer-Avatar
Benutzer1851420

Ich möchte das Leerzeichen entfernen, das am Anfang der Zeichenfolge vorhanden ist. Es sollte nur das Leerzeichen am Anfang der Zeichenfolge entfernt werden, andere Leerzeichen sollten dort sein.

var string=' This is test';

Benutzer-Avatar
Stefan Steiger

Das ist, was du willst:

function ltrim(str) {
  if(!str) return str;
  return str.replace(/^\s+/g, '');
}

Auch für normales Trimmen in IE8+:

function trimStr(str) {
  if(!str) return str;
  return str.replace(/^\s+|\s+$/g, '');
}

Und zum Trimmen der rechten Seite:

function rtrim(str) {
  if(!str) return str;
  return str.replace(/\s+$/g, '');
}

Oder als Polyfill:

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

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

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

Notiz:

\s: Enthält Leerzeichen, Tabulatoren \t, Zeilenumbrüche \n und einige andere seltene Zeichen wie \v, \f und \r.
\uFEFF: Unicode-Zeichen „ZERO WIDTH NO-BREAK SPACE“ (U+FEFF)
\xA0: ASCII 0xA0 (160: geschütztes Leerzeichen) wird nicht als Leerzeichen erkannt

  • kannst du bitte /^\s+|\s+$/g erklären

    – vikramvi

    31. Mai 2019 um 10:02 Uhr

  • Vielen Dank ! Es ist auch jetzt noch nützlich 🙂

    – Sox-

    27. Juni 2019 um 14:02 Uhr

  • @vikramvi: Es ist ein Regex-Muster (RegEx: Regulärer Ausdruck): Ein oder mehrere Leerzeichen am Anfang der Zeile oder ein oder mehrere Leerzeichen am Ende der Zeile. ^ bedeutet Zeilenanfang, $ bedeutet Zeilenende, \ ist Escape-Sequenz, \s bedeutet “Leerzeichen”, \s+ bedeutet ein oder mehrere Leerzeichen.

    – Stefan Steiger

    20. September 2019 um 9:35 Uhr


  • warum das /g ? Wenn wir nur am Anfang wollen, während Sie mehrere Ersetzungen vornehmen?

    – Garr Godfrey

    18. November 2020 um 3:48 Uhr

  • @Garr Godfrey: Wahrscheinlich, weil ich es von trim kopiert habe, was es braucht (andernfalls entfernt es nur den Leerraum am Anfang der Zeichenfolge. Abgesehen von der Leistung sollte es keine nachteiligen Auswirkungen auf ltrim und rtrim haben.

    – Stefan Steiger

    18. November 2020 um 12:14 Uhr

Benutzer-Avatar
Rajaprabhu Aravindasamy

Versuchen Sie, Javascript zu verwenden trim() Funktion, Im Grunde entfernt es die führenden und nachgestellten Leerzeichen aus einer Zeichenfolge.

var string=' This is test';
string = string.trim();

DEMO

Um die Abwärtskompatibilität des Browsers zu erreichen, verwenden Sie gemäß der Konversation im Kommentarbereich einfach jquery’s $.trim(str)

var string=' This is test';    
string = $.trim(string)

  • Beachten Sie nur: trim wird im IE9+-Browser unterstützt developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

    – Satpal

    18. Juni 2014 um 9:43 Uhr

  • Hinweis: Die Methode trim() wird in Internet Explorer 8 und früheren Versionen nicht unterstützt.

    – Softwareentwickler

    18. Juni 2014 um 9:44 Uhr

  • Hier möchte ich nur den Platz entfernen, der am Anfang der Zeichenfolge verfügbar ist

    – Benutzer1851420

    18. Juni 2014 um 9:49 Uhr


Sie können String.prototype.trimStart() verwenden. So was:

myString=myString.trimStart();

Wenn Sie den Schwanz trimmen möchten, können Sie Folgendes verwenden:

myString=myString.trimEnd();

Beachten Sie, dass diese 2 Funktionen im IE nicht unterstützt werden. Für IE müssen Sie Polyfills für sie verwenden.

  • das ist wirklich erstaunlich

    – Àtischking

    22. April 2020 um 12:23 Uhr

Du solltest benutzen Javascript-Trimmfunktion

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

Diese Funktion kann auch Leerzeichen am Ende der Zeichenfolge entfernen.

.trimLeft() kann dafür verwendet werden.

const str = "   string   ";
console.log(str.trimLeft());     // => "string   "

Benutzer-Avatar
hungrigWolf

Nur eine andere und nicht so effiziente Methode

var str = "   My string";

function trim() {
  var stringStarted = false;
  var newString = "";

  for (var i in str) {
    if (!stringStarted && str[i] == " ") {
      continue;
    }
    else if (!stringStarted) {
      stringStarted = true;
    }
    newString += str[i];
  }
  
  return newString;
}

console.log(trim(str));

Ich bin mir wirklich sicher, dass dies für nichts anderes funktioniert und nicht die optimalste Lösung ist, aber das ist mir gerade in den Sinn gekommen

Benutzer-Avatar
Nathan Champion

Einfachste Lösung: (ES10 Feature trimStart())

var string= 'This is a test';
console.log(string.trimStart());

  • Es gibt keine solche benannte Methode trimStrates ist trimStart eher.

    – Nithisch

    13. Juni 2020 um 6:10 Uhr

  • @NithishGandesiri Tippfehler Bruder. Danke für die Korrektur.

    – Shahnewaj Soumikh

    14. Juni 2020 um 13:55 Uhr

1011540cookie-checkSo entfernen Sie den Leerraum am Anfang der Zeichenfolge

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy