ich unten eine Unterkette in den Fällen erhalten möchten:Erhalten Unterkette innerhalb Nicht-Standard-Muster
TruckScaleEntry_DriverId_1535
^------^
EntryCreateForm_TruckScaleEntry_DriverId_1535_SelectWidget_Code
^------^
In den obigen Beispielen I die DriverId
(Es wollen, ist nicht immerDriverId
, es kann sich auch ändern), aber ich weiß nie, mit welchem Muster ich es zu tun habe. Eigentlich habe ich es mit zwei regex und zwei Methoden (match
und replace
) zusammen zu arbeiten. Aber ich möchte wissen, ob es einen besseren - und einfacheren - Weg gibt, dies zu erreichen.
Was ich habe ist:
console.log("TruckScaleEntry_DriverId_1535".match(/(?:.*TruckScaleEntry_)[^_]*/)[0].replace(/^.*_/, ''));
console.log("EntryCreateForm_TruckScaleEntry_DriverId_1535_SelectWidget_Code".match(/(?:.*TruckScaleEntry_)[^_]*/)[0].replace(/^.*_/, ''));
Ja, es ist hässlich. Kann ich mit nur einer Regex und einer Methode etwas klarer machen?
wollen Sie ** [diese] (https://regex101.com/r/wF4fG5/1) **? – rock321987
@ Rock321987 nicht genau. Ich habe die Frage aktualisiert, weil 'DriverId' ein Beispiel ist, das sich auch ändern kann. – DontVoteMeDown
so [das] (https://regex101.com/r/wF4fG5/2)? – rock321987