Регулярное выражение JavaScript для возврата последних цифр и ASP.Сетевой обработчик событий?

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

Сначала я думал, что мне нужны только первые цифры, но оказалось, что мне нужны последние.

Каким был бы подходящий термин регулярного выражения для этого?

Кроме того, как я могу создать ASP.Обработчик сетевых событий, чтобы что-то сделать с возвращенным значением 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, вам, вероятно, придется использовать Ajax - например, с помощью <asp:UpdatePanel /> или библиотека Ajax на ваш выбор (jQuery, Prototype и т.д.).

Без Ajax JavaScript и ASP.NET никогда не будут выполняться одновременно.

Другие советы

Вы могли бы сопоставить последние цифры в строке таким образом:

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

По вопросу возврата параметров Javascript на сервер...

Я создал два ASP.Чистые скрытые поля, затем в 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) появляется окно в стиле ajax для принятия пользовательского ввода 5) пользователь нажимает отправить 6) оба используемых параметра определяют, какие / куда отправляются данные

Я понимаю, что это может быть чем-то вроде взлома, и не используется AJAX.Если кто-то хочет поделиться, как это было бы сделано в стиле ajax, отлично!

Просто подумал, что поделюсь этим быстрым решением на случай, если оно понадобится кому-то еще.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top