Das klingt unlogisch, warum muss das so sein?
Vielleicht habe ich es nicht richtig ausgedrückt. Mich interessiert der Dateiname (ohne Endung). Wenn er aber einen numerischen Suffix nach einem Unterstrich enthält, soll dieser Suffix inkl. Unterstrich weggelassen werden.
Hintergrund ist, dass das Ergebnis als class Attribut zugeordnet werden soll, ein evtl. vorhandener Suffix aber die Eindeutigkeit verhindert.
Wenn ich dich richtig verstehe gehören die beiden zusammen:
dateiname.jpg ==> dateiname
dateiname_123.jpg ==> dateiname
aber das gehört nicht dazu:
dateiname_123_abc.jpg ==> dateiname_123_abc
das erscheint mir unlogisch
In JS wirst du das mit einem Regulären Ausdruck nicht hinkriegen, da es dort kein lookbehind gibt.
Könnte es nicht gehen, wenn die Dateiendung und Suffix inkl. Endung als alternative Beendigungen der RegExp definiert werden?
Das Problem ist doch, wenn du nach _xxx (x = Zahl) suchst und ersetzen willst, musst du gleichzeitig schauen, ob danach noch ein _cccc ( c = zeichen ) kommt. also du musst vorher Wissen, was nachher noch folgen wird. Das ist ein lookbehind.
Struppi.