gilbertoteles-3374Ensaio Gestante - Kamila EmerickEnsaio Gestante - Kamila EmerickEnsaio Gestante - Kamila EmerickEnsaio Gestante - Kamila EmerickEnsaio Gestante - Kamila Emerick

Pages

Substituir acentos e espaços em um campo texto com JavaScript

Mais um código pra guardar para a posteridade. Quando precisar substituir acentos por letras não acentuadas ou espaços por hifén, tipo o campo permalink do wordpress:

Cenário:

2 campos de texto:

1º campo com nome txt_title, que será usado para a digitação do titulo

2º campo com nome txt_permalink, no qual será gerado a mesma frase sem acentos e com espaços substituidos por -(hífen)

no primeiro campo colocar a chamada da função: onkeyup=”add_permalink();”

o $(‘campo’) é porque uso o Prototype como framework Ajax

  function add_permalink(){
      //pega valor do campo e converte para letras minúsculas
      texto = $('txt_title').getValue().toLowerCase();
      //faz as substituições dos acentos
      texto = texto.replace(/[á|ã|â|à]/gi, "a");
      texto = texto.replace(/[é|ê|è]/gi, "e");
      texto = texto.replace(/[í|ì|î]/gi, "i");
      texto = texto.replace(/[õ|ò|ó|ô]/gi, "o");
      texto = texto.replace(/[ú|ù|û]/gi, "u");
      texto = texto.replace(/[ç]/gi, "c");
      texto = texto.replace(/[ñ]/gi, "n");
      texto = texto.replace(/[á|ã|â]/gi, "a");
      //faz a substituição dos espaços e outros caracteres por - (hífen)
      texto = texto.replace(/\W/gi, "-");
      // remove - (hífen) duplicados
      texto = texto.replace(/(\-)\1+/gi, "-");
      $('txt_permalink').setValue(texto);
  }
  

Provavelmente exista outras soluções, mas fica a idéia que acredito também pode ser adaptada para o php para, por exemplo, renomear arquivos.

Espero que seja útil para mais alguém!



4 comments to Substituir acentos e espaços em um campo texto com JavaScript

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>