جافا سكريبت التعبيرات المنتظمة للعودة للأرقام الأخيرة و ASP.Net معالج الحدث؟

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

سؤال

وبالنظر إلى السلسلة التالية: S0 '\\ 8 \\ 26 \\ 29 \\ 30 \\ 32' أو 'S0 \\ 8 \\ 26 \\' أو 'S0 \\ 5 "، ولست بحاجة للعودة الأرقام الأخيرة من السلسلة.

ونظرا:

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

في البداية اعتقدت أنا فقط بحاجة الأرقام الأولى، ولكن تبين أنا في حاجة إلى مشاركة منها.

وماذا سيكون على المدى REGEXP المناسب لذلك؟

وأيضا، كيف يمكنني إنشاء معالج الحدث ASP.Net أن تفعل شيئا مع قيمة JS عاد؟

هل كانت مفيدة؟

المحلول

وكنت قد تحاول التالية. يجب أن بعد التنسيق ومجموعة من آخر مجموعة من الأرقام.

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

وهكذا، شيئا مثل:

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

وأما بالنسبة للحالة ASP.NET، ربما عليك استخدام اياكس - مثل التي <asp:UpdatePanel /> أو اختيارك للمكتبة اياكس (. jQuery، نموذج، الخ)

وبدون اياكس، وجافا سكريبت وASP.NET سيتم تنفيذ أبدا في نفس الوقت.

نصائح أخرى

هل يمكن أن تتطابق مع أرقام الأخيرة في سلسلة بهذه الطريقة:

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

في قضية العائدين المعلمات جافا سكريبت لخادم ...

وأنا خلقت اثنين ASP.Net الحقول المخفية، ثم في JS، تعيين قيم هذه الحقول ... فويلا - متاح من وجهة نظري التعليمات البرمجية الخلفية:

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

و

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

والآن هو العمل: 1) حق المستخدم بالنقر على عقدة شجرة 2) تظهر قائمة السياق 3) تحديد عنصر قائمة السياق يطلق على JS التي تضع القيم المخفية 4) تظهر نافذة على غرار اياكس لقبول إدخال المستخدم 5) ينقر المستخدم تقدم 6) وتستخدم كل من المعلمات لا تحديد ما / حيث يذهب البيانات

وأنا أدرك أن هذا قد يكون قليلا من الإختراق، وعدم استخدام AJAX. إذا شخص يهتم لتبادل كيف يتم ذلك على غرار اياكس، عظيم!

وبس كنت حصة هذا حل سريع في حال أي شخص آخر يحتاج إليها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top