Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Augusto

Converter conteúdo de uma tag...

Recommended Posts

Galera,

 

Tenho uma tag, cujo código segue:

 

<div class="tags" style="display: none;">





                               overview



                               another





                       </div>

Obtido, com a jQuery através de jQuery.text().

 

Eu preciso converter esse conteúdo em uma lista separada por vírgulas:

 

overview,another

Mas como não tenho controle sobre o número de linhas em branco que haverão, não sei como aplicar a Expressão Regular.

 

Como faço? :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei fazer isso em php.

Somos dois :grin:

 

Vai ser uma palavra por linha?

Aparentemente sim, mas como não tenho certeza de como exatamente o Tumblr funciona nesse quesito, se for possível casar um ou mais linhas e ainda opcionalmente, seria melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pega o conteúdo da div com innerHTML, processa e insere o texto novamente utilizando essa mesma propriedade.

 

str = str.replace(/*\n[\n]*/gi,',');

 

Isso aqui resolve o problema do numero indefinido de quebras de linhas, basta você remover a primeira e ultima virgula ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

E não tem como ter certeza? :rolleyes:

 

Em PHP você sabe fazer sem Regex?

Claro que sei, o ponto é que tal HTML vêm de após um template do Tumblr, com sua própria sintaxe ser renderizado, logo, todo e qualquer tipo de dinamismo impossível de ser feito através da própria sintaxe oferecida pelo Tumblr, deve ser feita com JavaScript.

 

Se não houver como, o que eu duvido, terei de recorrer à API o que ainda estou dependente de aprovação OAuth.

 

[EDIT]

 

Aparentemente eu consegui:

 

var tags = $( '.tags' );
   tags = ( tags.length == 1 ? tags.text() : '' );

   // If we have tags, let's map them

if( tags != '' ) {

// Cleaning empty lines and building comma-separated structure

tags = tags.replace( /(\r\n|\n|\r)/gm, '' ).replace( /\s*(\w+)\b\s+/gm, '.$1,' );

// Removing last comma

tags = tags.substring( 0, ( tags.length - 1 ) );
}

Ignorem o inglês ^_^

 

Obviamente tem mais do que o proposto pelo tópico pois a intenção final era converter o tal texto em uma string onde cada palavra deveria ser uma classe CSS (daí os pontos).

 

Mas alguma objeção quanto à ER? Ou algum conselho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.