Pergunta

Dada a seguinte seqüência de caracteres: 's0 \\ 8 \\ 26 \\ 29 \\ 30 \\ 32' ou 's0 \\ 8 \\ 26 \\' ou 's0 \\ 5', eu preciso de retorno os últimos dígitos do string.

Dada:

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

No começo eu pensei que eu precisava apenas os primeiros dígitos, mas acontece que eu preciso os últimos.

O que o termo regexp adequada ser por isso?

Além disso, como posso criar um manipulador de eventos ASP.Net fazer algo com o valor JS voltou?

Foi útil?

Solução

Você pode tentar o seguinte. Deve seguir a formatação e grupo o último conjunto de números.

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

Assim, algo como:

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

Como para o evento ASP.NET, você provavelmente vai ter de usar Ajax -., Como por <asp:UpdatePanel /> ou sua escolha de biblioteca Ajax (. JQuery, Prototype, etc)

Sem Ajax, JavaScript e ASP.NET nunca vai executar ao mesmo tempo.

Outras dicas

Você poderia coincidir com os últimos dígitos em uma string desta forma:

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

Sobre a questão de retornar parâmetros JavaScript para o servidor ...

Eu criei dois campos ASP.Net escondidos, depois em JS, defina os valores desses campos ... voila - disponível a partir de meu código-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" />

Agora, o fluxo de trabalho é: 1) de usuários para cliques-on nó de árvore 2) menu de contexto aparece 3) selecionar um item de menu de contexto dispara o JS que define os valores escondidos 4) A janela de estilo ajax parece aceitar a entrada do usuário 5) usuário clica em enviar 6) os dois parâmetros são usados ??fazer determinar o que / onde os dados vão

Sei que isto pode ser um pouco de um truque, e não usando AJAX. Se alguém se importa de compartilhar como isso seria feito em estilo ajax, ótimo!

Apenas pensei em partilhar esta solução rápida no caso de alguém necessidades senão ele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top