regex in JS

  • Hallo zusammen,

    und zwar bin ich zwar im Thema JS sehr fit allerdings regex und ich werden keine Freunde mehr. Für mein aktuelles Projekt brauche ich leider regex und kann es nicht umgehen, vielleicht kann mir ja jemand von euch weiterhfelfen?

    Folgendes soll passieren, ein String soll nach einem ':' durchsucht werden und immer dann gesplittet werden wenn ein Doppelpunkt gefunden wurde, allerdings soll der Doppelpunkt ignoriert werden wenn '//'nachfolgend kommt also :// soll nicht gesplittet werden. Alles was ich bisher versucht habe funktioniert leider nicht.

    Mein Beispiel Code:

    Code
    $('#reggi').on('click', function() {
            var regex = /(?<!:\/\/):/;
            var string = $('#regexp').val();
            var array = string.split(regex);
            console.log(array);
        })

    Wenn mir da jemand weiterhelfen könnte wäre super.

  • Am besten ist es wohl, wenn du entsprechende Helfertools wie z.B. regex101.com verwendest.

    Ich kenne die js-Funktion split in dem Zusammenhang nicht, vermute aber, dass die die Zeichen haben will an denen gematcht wird.
    Hierfür wäre mein Vorschlag folgendes Pattern: :(?!\/\/)

    Man kann es hingegen auch anders betrachten und anstatt am jeweiligen Match zu splitten einfach alles was nicht Trennzeichen ist matchen.
    Hierfür könnte das Pattern dann so aussehen: (?:[^:]+|:(?=\/\/))+