820 Stimmen

Das erste Zeichen der Zeichenkette löschen, wenn es 0 ist

Ich möchte das erste Zeichen einer Zeichenkette löschen, wenn das erste Zeichen eine 0 ist. Die 0 kann mehr als einmal vorkommen.

Gibt es eine einfache Funktion, die das erste Zeichen überprüft und es löscht, wenn es 0 ist?

Im Moment versuche ich es mit dem JS slice() Funktion, aber sie ist sehr umständlich.

4voto

Kamil Kiełczewski Punkte 69048

Versuchen Sie

s.replace(/^0/,'')

console.log("0string  =>", "0string".replace(/^0/,'') );
console.log("00string =>", "00string".replace(/^0/,'') );
console.log("string00 =>", "string00".replace(/^0/,'') );

3voto

ChaosPandion Punkte 75527
String.prototype.trimStartWhile = function(predicate) {
    if (typeof predicate !== "function") {
        return this;
    }
    let len = this.length;
    if (len === 0) {
        return this;
    }
    let s = this, i = 0;
    while (i < len && predicate(s[i])) {
        i++;
    }
    return s.substr(i)
}

let str = "0000000000ABC",
    r = str.trimStartWhile(c => c === '0');

console.log(r);

3voto

bdukes Punkte 144019

Hier ist eine, die nicht davon ausgeht, dass die Eingabe eine string verwendet substring und enthält eine Reihe von Unit-Tests:

var cutOutZero = function(value) {
    if (value.length && value.length > 0 && value[0] === '0') {
        return value.substring(1);
    }

    return value;
};

http://jsfiddle.net/TRU66/1/

1voto

Eine weitere Möglichkeit, das erste Zeichen nach dem Löschen zu erhalten:

// Example string
let string = 'Example';

// Getting the first character and updtated string
[character, string] = [string[0], string.substr(1)];

console.log(character);
// 'E'

console.log(string);
// 'xample'

0voto

fino Punkte 3624

Von der Javascript-Implementierung von trim() >, die führende oder endende Leerzeichen aus Zeichenketten entfernt. Hier ist eine geänderte Implementierung der Antwort auf diese Frage.

var str = "0000one two three0000"; //TEST  
str = str.replace(/^\s+|\s+$/g,'0'); //ANSWER

Ursprüngliche Implementierung für diese auf JS

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

0 Stimmen

Wir halten Verwirrung nicht für ein Umsetzungsproblem, sie wird jedoch oft auf ein Kapazitätsdefizit zurückgeführt, wenn es darum geht, mit den Variablen, die einem die Umgebung bietet, Schritt zu halten. In diesem Fall sind Ihre neuronalen Verbindungen nicht in der Lage, das notwendige Verständnis für diese veränderte Übernahme einer nativen js-Funktionsimplementierung als Antwort auf die ursprüngliche Frage zu verarbeiten.

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