Wenn ich die Zeichenfolge habe:
var myStr = "foo_0_bar_0";
und ich denke, wir sollten eine Funktion namens getAndIncrementLastNumber(str)
Also wenn ich das tue:
myStr = getAndIncrementLastNumber(str); // "foo_0_bar_1"
Nehmen wir an, dass es einen anderen Text anstelle von foo
und bar
geben könnte und dass möglicherweise nicht underscores
vorhanden ist oder mehr als ein underscore
;
Gibt es eine Möglichkeit mit JavaScript
oder jQuery
mit .replace()
und etwas RegEx
?
Sie können den regulären Ausdruck /[0-9]+(?!.*[0-9])/
verwenden, um die letzte Zahl in einer Zeichenfolge zu finden (Quelle: Ссылка ). Diese Funktion, die diese Regex mit match (), parseInt () und replace () verwendet, sollte tun, was Sie brauchen:
Wahrscheinlich nicht besonders effizient, aber für kurze Strings sollte das keine Rolle spielen.
EDIT: Hier ist ein etwas besserer Weg, eine Callback-Funktion zu verwenden, anstatt die Zeichenfolge zweimal zu suchen:
%Vor%Werden die Zahlen mit einigen Zeichen getrennt? Was ich von dir verstanden habe ist, dass deine Zeichenkette wie folgt aussehen könnte: 78_asd_0_798_fgsdflh__0_2323 !! Wenn dies der Fall ist, müssen Sie zuerst alle Zeichen und Unterstriche in einem Rutsch entfernen. Und dann, was auch immer du ausgestreift hast, kannst du entweder durch Komma oder etwas ersetzen.
So wirst du im Grunde genommen haben str1: 78_asd_0_798_fgsdflh__0_2323; str2: 78,0,0,798,2323.
str2 muss keine Zeichenkette sein, Sie können sie auch einfach in einem variablen Array speichern und die maximale Zahl erhalten und erhöhen.
Meine nächste Frage ist das genügt Ihr Problem? Wenn Sie die größte Zahl durch diese inkrementierte Zahl ersetzen müssen, müssen Sie das Auftreten dieser Zahl in str1 ersetzen und durch Ihr Ergebnis ersetzen.
Hoffe, das hilft. Zum Ersetzen mithilfe von jquery können Sie wahrscheinlich JQuery, das das Zeichen '-' aus der Zeichenfolge entfernt Es ist nur ein Beispiel, aber Sie werden eine Idee haben.
@Brilliant hat Recht, +1, ich wollte nur eine Version seiner Antwort mit 2 Modifikationen angeben:
negative look-ahead
. '' '
%Vor%Tests :
%Vor%Tags und Links javascript jquery regex replace