Frage

die folgende Zeichenfolge Gegeben: 's0 \\ 8 \\ 26 \\ 29 \\ 30 \\ 32' oder '\\ 8 \\ 26 \\ s0' oder 's0 \\ 5', ich muss zurück die letzten Ziffern der Zeichenfolge.

Gegeben:

 function getFolderID(mystr) {
        var reFolderID = /\bs0\\\\[0-9]+\b/g //regexp to return s0\\34
        var retArr = [];
        var retval = '';

        retArr = mystr.match(reFolderID);
        retArr = retArr[0].replace(/s0\\\\/g, "");

        if (retArr != null) {
            retval = retArr[retArr.length - 1];
        }
        //alert("Ret: " + retval);
        return retval;
    }  

Zuerst dachte ich, dass ich nur die ersten Ziffern benötigt, aber stellt sich heraus ich die letzten, die brauchen.

Was wäre der richtige regexp Begriff dafür sein?

Auch, wie kann ich erstelle ein ASP.Net-Ereignishandler etwas mit dem zurück JS Wert zu tun?

War es hilfreich?

Lösung

Sie können die folgende versuchen. Es sollte im Anschluss an der Formatierung und Gruppe die letzte Reihe von Zahlen.

/s0\\\\(?:[0-9]+\\\\)*([0-9]+)/

Also, so etwas wie:

function getFolderID(mystr) {
    // search string for last group of digits in the pattern
    var matches = mystr.match(/s0\\\\(?:[0-9]+\\\\)*([0-9]+)/);

    // if matches is null, replace with "defaults"
    matches ||= ["", ""];

    // grab the first grouped match
    return matches[1];
}

Wie für das ASP.NET-Ereignis, werden Sie wahrscheinlich Ajax verwenden -. Wie durch <asp:UpdatePanel /> oder Ihre Wahl von Ajax-Bibliothek (. JQuery, Prototype, etc.)

Ohne Ajax, JavaScript und ASP.NET werden nie zur gleichen Zeit ausgeführt werden.

Andere Tipps

Sie könnten die letzten Ziffern in einer Reihe auf diese Weise entsprechen:

function getFolderId(str) {
    var pattern = /([0-9]+)$/;
    var result = pattern.exec(str);
    return result ? result[1] : null;
}

In der Frage der Javascript-Parameter an den Server zurückkehr ...

habe ich zwei versteckte Felder ASP.Net, dann in JS, stellen Sie die Werte dieser Felder ... voila - erhältlich von meinem Code-Behind:

    // set .net hidden control values so they're server-side accessible
    document.getElementById('ctl00_ContentPlaceHolderMainBody_HidTreeContextAction').value = buttonAction;
    document.getElementById('ctl00_ContentPlaceHolderMainBody_HidTreeContextID').value = buttonFolder;

Und

<asp:HiddenField ID="HidTreeContextAction" runat="server" />
<asp:HiddenField ID="HidTreeContextID" runat="server" />

Jetzt ist der Workflow ist: 1) Benutzer rechten Klicks auf Baumknoten 2) Kontextmenü erscheint 3) einen Kontextmenüpunkt löst das JS, die die verborgenen Werte setzen 4) ajax-style Fenster erscheint eine Benutzereingabe zu akzeptieren, 5) Benutzer klickt einreichen 6) beiden Parameter verwendet werden, stellen Sie fest, was / wo die Daten gehen

Ich weiß, das ein bisschen wie ein Hack sein kann, und mit AJAX nicht. Wenn jemand kümmert sich zu teilen, wie dies Ajax-Stil getan würde, toll!

dachte, ich würde diese schnelle Lösung teilen, falls jemand sie braucht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top