Ir para conteúdo

Arquivado

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

ricardosac

Remover acentos e espaços

Recommended Posts

Boa tarde!

 

Alguém possa me ajudar a resolver o problema de como remover acentuação e espaços.

 

Ao selecionar estado Alagoas e cidade Barra de São Miguel, retorna assim Barra de São Miguel.html e que deveria ser substituído por barradesaomiguel.html.

Segue abaixo:

 

<div id="wrap">
          <form name="myForm" action method="post">
          <select class="selcls" name="estados" onchange="updateModels(this.form)">
            <option>Selecione estado</option>
            <option>Acre</option>
            <option>Alagoas</option>

            </select> <select class="selcls" name="cidades"></select>
            <input id="B1" type="button" value="Ok" class="btn btn-primary">
          </form>
        </div>

        <script type="text/javascript">
        var cidades = [];
       cidades.Acre = ['Rio Branco','Acrelândia','Assis Brasil','Brasiléia','Bujari','Capixaba','Cruzeiro do Sul','Epitaciolândia','Feijó','Jordão','Mâncio Lima','Manoel Urbano','Marechal Thaumaturgo','Plácido de Castro','Porto Acre','Porto Walter','Rodrigues Alves',  'Santa Rosa do Purus','Sena Madureira','Senador Guiomard','Tarauacá','Xapuri'];
       cidades.Alagoas = ['Maceió','Água Branca','Anadia','Arapiraca','Atalaia','Barra de Santo Antônio','Barra de São Miguel','Batalha','Belém','Belo Monte','Boca da Mata','Branquinha','Cacimbinhas','Cajueiro','Campestre','Campo Alegre','Campo Grande','Canapi','Capela','Carneiros','Chã Preta','Coité do Nóia','Colônia Leopoldina','Coqueiro Seco','Coruripe','Craíbas',  'Delmiro Gouveia','Dois Riachos','Estrela de Alagoas','Feira Grande','Feliz Deserto','Flexeiras','Girau do Ponciano','Ibateguara','Igaci','Igreja Nova','Inhapi','Jacaré dos Homens','Jacuípe','Japaratinga','Jaramataia','Jequiá da Praia','Joaquim Gomes','Jundiá','Junqueiro','Lagoa da Canoa','Limoeiro de Anadia','Major Isidoro','Mar Vermelho','Maragogi','Maravilha','Marechal Deodoro','Maribondo','Mata Grande','Matriz de Camaragibe','Messias','Minador do Negrão','Monteirópolis','Murici','Novo Lino','Olho d\'Água das Flores','Olho d\'Água do Casado','Olho d\'Água Grande','Olivença','Ouro Branco','Palestina','Palmeira dos Índios','Pão de Açúcar','Pariconha','Paripueira','Passo de Camaragibe','Paulo Jacinto', 'Penedo','Piaçabuçu','Pilar','Pindoba','Piranhas','Poço das Trincheiras','Porto Calvo','Porto de Pedras','Porto Real do Colégio','Quebrangulo','Rio Largo','Roteiro','Santa Luzia do Norte','Santana do Ipanema','Santana do Mundaú','São Brás','São José da Laje','São José da Tapera','São Luís do Quitunde','São Miguel dos Campos','São Miguel dos Milagres','São Sebastião','Satuba','Senador Rui Palmeira','Tanque d\'Arca','Taquarana','Teotônio Vilela','Traipu','União dos Palmares','Viçosa'];
        // ---
        function updateModels(theForm) 
         { if(theForm.estados.selectedIndex<1){return false; }
           var op=theForm.estados.options;
           var newModels = cidades[op[op.selectedIndex].value];
           theForm.cidades.options.length = 0;
           theForm.cidades.options[0] = new Option("Selecione cidade", "");
           theForm.cidades.options[0].selected = true;
           for (var i=0; i<newModels.length; i++) 
           { theForm.cidades.options[i+1] = new Option(newModels, newModels); }  
         }
        // ---
        // check both selections have been made
         document.getElementById("B1").onclick=function(event)
          { event=event || window.event;
            var targElem = event.target || event.srcElement;
            var thisForm=targElem.parentNode;
            if(thisForm.estados.selectedIndex>0 && thisForm.cidades.selectedIndex>0)
              { var cidadesP= thisForm.cidades;
                      location.href= cidadesP[cidadesP.selectedIndex].value+".html"; }
                else { return false; } 
          }

        </script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

class StringsCleaner {
  /**
   * @param {string} string (String que deve ser limpa)
   * @param {string} modo  (Modo em que a string sera limpa: "all" -> remove caracteris especiais e espaços)
   */
  constructor (string) {
    this.string = string
  }

  get stringLimpa () {
    return this.limparString()
  }

  get numerosApenas () {
    return this.apenasNumeros()
  }

  // Remove todos os caracteris especiais e espaços da string
  limparString () {
    const stringLimpa = this.string
      .normalize('NFD')
      .replace(/[\u0300-\u036f]/g, '')
      .replace(/\s/g, '')

    return stringLimpa
  }

  // Retorna apenas os numeros de uma string
  apenasNumeros () {
    const numeros = this.string.replace(/[^\d]/g, '')
    return numeros
  }
}

module.exports = StringsCleaner

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por mateus.andriollo
      Boa tarde,
      Tenho alguns campos numéricos q ao fazer uma select gostaria q retornasse uma legenda
       
      exemplo:
      Status: 0=Inativo / 1=Ativo Condição: 1=Funcionando / 2=Em manutenção / 3=Manutenção Interna   
      Seria algo assim, tenho varias tabelas com estes campos... mas tenho q ficar usando replace.
      Existe uma forma de criar uma função para isso? Nem q na função eu tenha que setar nome do campo, ficando assim:
      Legenda('Status',cadastro.status) 
    • Por Nightmare SEP
      Bom dia,
      Estou com problema com acentos no PHPMailer (classe para envio de e-mails). Conforme anexo.
       
      Na configuração do e-mail de destinatário, o nome do destinatário tem acento, quando enviado o e-mail, ao invés de aparecer o nome, aparece aqueles caracteres ali (conforme anexo).
      Acontece o mesmo se eu coloco acentuação no assunto do e-mail.
       
      require("../phpmailer/class.phpmailer.php"); $mail = new PHPMailer(); $mail->IsHTML(true); $mail->CharSet = 'utf-8';  
      Será que pode ser algo no php.ini? Lá eu vi que está marcado o default_charset = 'utf-8'. Ou não tem nada a ver?
       
      EDITANDO:
      Funciona os acentos no corpo do e-mail. Só não funciona no ASSUNTO e no NOME DO DESTINATÁRIO.
       

    • Por FabianoSouza
      Tenho um campo de descrição no meu sistema... nesse campo preciso fazer um replace de alguns "substrings" que podem existir.
      Exemplos:
      <apelido>apelido</apelido>
      <saudacao>saudacao</saudacao>
       
      Usando CASE e REPLACE para tratar essas substrings aí de cima, funciona para um caso ou para o outro, não ambos.
      Vejam como estou aplicando o SQL.
      ... , CASE WHEN MWA.descMsg LIKE '%'+'<saudacao>saudacao</saudacao>'+'%' Then REPLACE(MWA.descMsg, '<saudacao>saudacao</saudacao>', dbo.saudacao(GETDATE())) WHEN MWA.descMsg LIKE '%'+'<apelido>apelido</apelido>'+'%' Then REPLACE(MWA.descMsg, '<apelido>apelido</apelido>', '[Apelido]') ELSE MWA.descMsg END AS msg ... Preciso fazer com que esse tratamento seja aplicado para todas as situações, não apenas para uma das duas situações.
      O lance é que não tenho como colocar o campo tratado numa variável e ir aplicando o tratamento a ela de forma isolada.
    • Por usuario181474618518
      Bom dia a todos! 
       
      Estou iniciando em PHP, então talvez isso seja uma pergunta burra. Estou utilizando uma plataforma que fornece um array de categorias como digitado abaixo, e minha ideia é fazer uma busca no conteúdo por essas categorias, e substituir elas por outro array, que no caso terá as mesmas categorias, no entanto, com links. Veja:
      $conteudo = "Meu conteúdo Filmes Laranja e Verde. Blackout."; $from = array( 0 => "Laranja", 1 => "Azul", 2 => "Vermelho", 3 => "Verde", 4 => "Black" ); $to = array( 0 => "<a href='#laranja'>Laranja</a>", 1 => "<a href='#azul'>Azul</a>", 2 => "<a href='#vermelho'>Vermelho</a>", 3 => "<a href='#verde'>Verde</a>", 4 => "<a href='#ver'>Black</a>" ); $novoconteudo = strtr($conteudo, array_combine($from, $to)); echo $novoconteudo;  
      O máximo que conseguir fazer foi usando strtr, no entanto acaba fazendo algumas substituições "burras", como por exemplo adicionar link em "Black" quando na verdade a palavra é "Blackout". Acredito que para resolver isso, deveria ser feito com preg_replace, porém já tentei e não consegui. Alguém pode me ajudar?
       
      Veja: http://sandbox.onlinephpfunctions.com/code/e7cfd27ea182041de0519df3ed22bedc93cda18b
    • Por FabianoSouza
      Olá pessoal. Tenho uma base com uns 5.000 registros.
      Quero fazer um código para aplicar acento em nomes que foram gravados sem sua respectiva acentuação.
       
      Parte 1
      Até consegui montar uma código para testes usando UPDATE e replace.
      Mas da forma como criei, se peço para acentuar a string Jose, acaba acentuando também Josevaldo (pois ambos tem a string "jose")
      Preciso de um código que pegue cada parte do nome  (primeiro nome, nome do meio e último nome) da pessoa e verifique se há o valor passível de aplicar a acentuação.
       
      Exemplo:
      Jose Amancio dos Santos - teria que aplicar acento no Jose e em Amancio.
      Josevaldo Pires Silva - não deve aplicar acento em Josevaldo
       
       
      Parte 2
      Como isso será uma rotina, quero ter um "dicionário" de nomes gravados da forma correta (acentuados) para serem usados na rotina de que aplicaria a acentuação.
      Queria ver sugestões de como montar esse "dicionário". Seria um array? Seria ler uma tabela?
       
       
      Podem ajudar?

      Valew!
       
×

Informação importante

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