tadarank afiliados

11 abril, 2007

htmlEntities, array_search e strip_tags para JavaScript

Ae pessoal, tô cheio de serviço, fazendo um freela aí pra uma empresa de gravação telefônica, por isso tô meio sumido.

Pra que vocês não pensem que me sequestraram, vou postar umas duas funções que desenvolvi enquanto estava fazendo o site desta empresa. Rapidim pra saberem que (ainda) tô vivo.

Coisas simples, mas úteis às vezes: Array_search e htmlEntities para Java Script (lembram-se dessas funções do PHP?).

Estas funções também foram postadas por mim no novo portal temporário do iEvolution ('temporário' pois temos um concurso pra que os users façam o design do portal). Este portal tem uma filosofia inovadora de que todo mundo pode ser colunista-colaborador, basta postar seu tutorial no fórum respectivo.
Quisemos (ou estamos tentando) fazer um portal-fórum bem 'à lá Web 2.0'.

Bem, também tô devendo um post agradecendo as ajudas que todos me deram. Já achei um ótimo serviço de hospedagem-domínio e um ótimo designer.
Depois eu faço esta postagem e migro pro novo El Micox. O tempo tá curto.

Bora lá.

htmlEntities para Javascript

Postado originalmente em: htmlEntities para Javascript
Quase igual a do PHP, só que pra javascript.

Às vezes é necessário agente converter alguns caracteres acentuados para sua entidade HTML correspondente.
Assim você não precisa ficar quebrando muito a cabeça com o charset. HTMLEntities são entendidos geral.

Quem mexe com PHP já conhece bem uma função que faz isso: htmlEntities.

Quem precisar de algo mais ou menos equivalente pra JavaScript, eu fiz uma funçãozinha aqui.
A diferença principal da minha função é que eu transformo via número do código ASCII da letra.

Por exemplo: no htmlEntities do PHP o 'ã' irá virar ã
Na minha função abaixo irá virar ä

No final, fique tranquilo, irá aparecer o 'ã' normalmente na página (de acordo com meus cálculos).

Teste aí e veja:

function htmlEntities(texto){
       //by Micox - elmicox.blogspot.com - www.ievolutionweb.com
    var i,carac,letra,novo='';
    for(i=0;i<texto.length;i++){
        carac = texto[i].charCodeAt(0);
        if( (carac > 47 && carac < 58) || (carac > 62 && carac < 127) ){
            //se for numero ou letra normal
            novo += texto[i];
        }else{
            novo += "&#" + texto[i].charCodeAt(0) + ";";
        }
    }
    return novo;
}

Exemplo de uso:

document.getElementById('div_teste').innerHTML = htmlEntities('coração de porquio');

array_search para Javascript

Mais uma função baseada no PHP.
Agora é a array_search pra javascript.

Esta função procura por um valor em um array e retorna sua chave correspondente caso seja encontrado

function array_search(busca,oarray){
     //by Micox - elmicox.blogspot.com - www.ievolutionweb.com
    //ve se determinado valor existe no array e retorna sua chave
    for(var i in oarray){
        if(oarray[i]==busca){return i;}    
    }
    return false;
}

Exemplo (procuro o valor arroz dentro do array comidas e retorno sua chave):

var onde_esta_o_arroz = array_search('arroz', comidas);

Strip tags em javascript

Extra-post rapidim: strip_tags em javascript (baseada neste post).

Tira tags HTML de uma string.

var stringa = '<b>teste</b> <em>teste2</em>';
function strip_tags($text){
 return $text.replace(/<\/?[^>]+>/gi, '');
}
alert(strip_tags(stringa)); //vai mostrar 'teste teste2'

Acabou, agora vou sumir novamente pra terminar meus jobs.
Té mais macacada. Bugs, comenta ae. Dúvidas, vocês já sabem onde se deve perguntar né?

Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

10 comentários:

  1. Como é bom se sentir familiar com o Javascript!

    Eu adoro PHP, sou viciado. Só que tenho arrepios do Javascript...

    É bom "se sentir em casa" às vezes.

    ResponderExcluir
  2. Cara muito bom.... estou tendo uns problemas com isso e acho que agora eles acabaram... hehehehe

    Valew

    ResponderExcluir
  3. Mais uma vez você me salva!
    Valeu cara!
    http://digitalpaperweb.com.br/pt/?p=79

    ;D

    ResponderExcluir
  4. cara brigado pela ajuda, refiz uma aqui acho que resolveu, vou me orientar pelo que você disse, tentar aos poucos consertar tudo mas odeio essa palavra aos poucos ehuehue, e tou curtindo muito seu blog, apreender isso faz bem! até mais!

    ResponderExcluir
  5. Olá Micox!

    Estou começando a estudar PHP e outras linguagens para internet, apesar da minha praia ser Delphi para desktop, e acho que eu e seu blog teremos uma relação muito boa na qual as dicas serão muito bem vindas para uso no BlogGeral.

    Por falar no BlogGeral, verifiquei que o El Micox não tem cadastro lá e então não imagino como foi que você me encontrou nesta vasta Web.

    Um abraço e obrigado pela força no Sobreblogs!

    Gino Netto

    ResponderExcluir
  6. @alexandre, aguinelo, canha, Aluísio
    hehhe, valeus. É bom que serviram pra vocês aí pessoal.

    @gino
    véi, nem lembro comé que achei o sobreblogs heheh. Mas o blog geral eu não conhecia não. Fiz o cadastro lá e no fim de abril vou entrar naquela promoção lá. hahehe
    (Só arruma aquela burocracia de data de nascimento no cadastro pelamordedeus!!! espanta qualquer um)

    ResponderExcluir
  7. @gino
    Velho velho. Você tem que arrumar aquele cadastro lá urgente.
    Tentei por vários caminhos e o negócio não foi não.
    Teve hora que até apareceu um alert de javascript cheio de códigos seus.

    Arruma lá e me avisa.

    ResponderExcluir
  8. É micox muito legal as duas funções cara, parabens mesmo.

    Principalmente pela HTMLentities, mas vc tem alguma ideia para uma função aocontrario?
    Tipo:

    Utilizamos ajax certo? Para retornarmos um texto descente(com relação aos acentos) devemos retornar htmlentities($txt), certo?

    Porém, mtas vezes estamos retornando um combo(select) e os caracteres (â por exemplo) não será interpretados, então o mané aki criou uma função com arrays prenchidos tipo (x["Á"] = "Á"; x["á"] = "á"; x["Â"] = "Â";) e faço um for pra alterar novamente esses caracteres.

    Tem outro jeito?
    Vlw
    Richard

    ResponderExcluir
  9. Olá Richard.
    Acho que você está complicando um pouco a coisa não?
    Há como simplificar este seu procedimento aí. Lembre-se que ainda podemos usar a linguagem server-side ao invés do javascript.
    Bem, eu não entendi direito sua questão pois o blogger converteu os entities então não deu pra eu saber quem é entitie quem não é.
    Qualquer coisa posta lá no fórum iEvolution pragente ver.

    ResponderExcluir
  10. Micox mandou muito bem!
    vou usar em um projeto meu, e vou deixar o copyright seu ;D
    mas seguinte
    você tem alguma função que faz o inverso do htmlentities?
    tipo o htmlspecialchars_decode...
    se tiver ou saber de algum lugar que possa ter agradeço...
    valew micox!

    ResponderExcluir

Resultado! Concursos