Domanda

Data la seguente stringa: 's0 \\ 8 \\ 26 \\ 29 \\ 30 \\ 32' o 's0 \\ 8 \\ 26 \\' o 's0 \\ 5', devo restituire le ultime cifre della stringa.

Data:

 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;
    }  

Inizialmente pensavo di aver bisogno solo delle prime cifre, ma alla fine ho bisogno delle ultime.

Quale sarebbe il termine regexp appropriato per questo?

Inoltre, come posso creare un gestore eventi ASP.Net per fare qualcosa con il valore JS restituito?

È stato utile?

Soluzione

Potresti provare quanto segue. Dovrebbe seguire la formattazione e raggruppare l'ultimo set di numeri.

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

Quindi, qualcosa del tipo:

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];
}

Per quanto riguarda l'evento ASP.NET, probabilmente dovrai usare Ajax, ad esempio <asp:UpdatePanel /> o la tua scelta della libreria Ajax (jQuery, Prototype, ecc.).

Senza Ajax, JavaScript e ASP.NET non verranno mai eseguiti contemporaneamente.

Altri suggerimenti

In questo modo puoi abbinare le ultime cifre di una stringa:

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

Sulla questione della restituzione dei parametri Javascript al server ...

Ho creato due campi nascosti ASP.Net, quindi in JS, ho impostato i valori di questi campi ... voilà - disponibile dal mio 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;

E

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

Ora il flusso di lavoro è: 1) l'utente fa clic con il pulsante destro del mouse sul nodo dell'albero 2) appare il menu contestuale 3) selezionando una voce del menu contestuale si attiva il JS che imposta i valori nascosti 4) una finestra in stile ajax sembra accettare l'input dell'utente 5) invio di clic dell'utente 6) entrambi i parametri utilizzati determinano cosa / dove vanno i dati

Mi rendo conto che questo potrebbe essere un po 'un trucco e non usare AJAX. Se qualcuno si preoccupa di condividere come questo sarebbe fatto in stile Ajax, fantastico!

Ho pensato di condividere questa soluzione rapida nel caso in cui qualcun altro ne avesse bisogno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top