JavaScript Regex pour renvoyer les derniers chiffres et le gestionnaire d'événements ASP.Net?

StackOverflow https://stackoverflow.com/questions/1635280

Question

Étant donné la chaîne suivante: 's0 \\ 8 \\ 26 \\ 29 \\ 30 \\ 32' ou 's0 \\ 8 \\ 26 \\' ou 's0 \\ 5', je dois retourner les derniers chiffres de la chaîne.

Donné:

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

Au début, je pensais avoir besoin des premiers chiffres, mais il me faut les derniers.

Quel serait le terme approprié pour l'expression régulière pour cela?

Comment puis-je créer un gestionnaire d’événements ASP.Net pour faire quelque chose avec la valeur JS renvoyée?

Était-ce utile?

La solution

Vous pouvez essayer ce qui suit. Il convient de suivre le formatage et de regrouper le dernier ensemble de chiffres.

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

Donc, quelque chose comme:

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

En ce qui concerne l’événement ASP.NET, vous devrez probablement utiliser Ajax - par exemple, <asp:UpdatePanel /> ou votre choix de bibliothèque Ajax (jQuery, Prototype, etc.).

Sans Ajax, JavaScript et ASP.NET ne s'exécuteront jamais en même temps.

Autres conseils

Vous pouvez faire correspondre les derniers chiffres d'une chaîne de la manière suivante:

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

Sur la question de la restitution des paramètres Javascript sur le serveur ...

J'ai créé deux champs cachés ASP.Net, puis dans JS, définissez les valeurs de ces champs ... voila - disponible sur mon 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;

Et

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

Le flux de travail est maintenant le suivant: 1) l'utilisateur clique avec le bouton droit sur le noeud de l'arborescence 2) le menu contextuel apparaît 3) la sélection d'un élément du menu contextuel déclenche le JS qui définit les valeurs cachées 4) la fenêtre de style ajax apparaît pour accepter les entrées de l'utilisateur 5) l'utilisateur clique sur soumettre 6) les deux paramètres utilisés déterminent ce / où vont les données

Je réalise que cela peut être un peu un bidouillage, et ne pas utiliser AJAX. Si quelqu'un se soucie de dire comment cela se ferait à la manière ajax, c'est génial!

Je pensais partager cette solution rapide au cas où quelqu'un d'autre en aurait besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top