Ir para conteúdo

POWERED BY:

Arquivado

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

D2th3

[Resolvido] Função que altera caracteres de uma string

Recommended Posts

Amigos, entendo muito pouco de JavaScrip. Porém preciso fazer uma função que altere caracteres especiais por caracteres simples.

 

Já tenho uma função em PHP que faz isso para mim, porém preciso fazer o mesmo em JavaScript para uma alteração em tempo real, sm que a página recarregue.

 

A minha Função em PHP é

 

function LimpaTexto($texto) {

	// passa todo o texto para minúsculo
	$texto = strtolower($texto);

	$replaces = array(
		'/[áàãâä]/'	 => 'a',
		'/[éèêë&]/'	 => 'e',
		'/[íìîï]/'	  => 'i',
		'/[óòõôö]/'	 => 'o',
		'/[úùûü]/'	  => 'u',
		'/[ç]/'		 => 'c',
		'/[ñ]/'		 => 'n',
		'/( )/'		  => '_',
		'/[^a-z0-9\-_]/' => '',
		'/-+/'		   => '-',
		'/[.]/'		  => '_'
		);

	$texto = preg_replace(array_keys($replaces), array_values($replaces), $texto);

	return $texto;
}

Tentei rabiscar algo semelhante em javascript porém não funcionou

Segue:

 

function LimpaTexto(texto){
   
   var Arquivo = texto.toLowerCase()
   
   var Replace = {'/[áàãâä]/'	  : 'a',
				  '/[éèêë&]/'	  : 'e',
				  '/[íìîï]/'	   : 'i',
				  '/[óòõôö]/'	  : 'o',
				  '/[úùûü]/'	   : 'u',
				  '/[ç]/'		  : 'c',
				  '/[ñ]/'		  : 'n',
				  '/( )/'		  : '_',
				  '/[^a-z0-9\-_]/' : '',
				  '/-+/'		   : '-',
				  '/[.]/'		  : '_'
				 };
  
  return document.form1.segundo.value = Arquivo.replace(key, Replace[key]) +".php";

}

Dentro do HTML tenho um formulário com dois input assim

<form id="form1" name="form1" method="post" action="">
  <label>primeiro
  <input type="text" name="primeiro" id="primeiro" onBlur="LimpaTexto(this);" onChange="LimpaTexto(this);" />
  </label>
  <br />
  <label>segundo
  <input type="text" name="segundo" id="segundo" />
  </label>
</form>

 

Obrigado a todos por qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma testada ai

function LimpaTexto(elemento){
  
			var texto = elemento.value.toLowerCase();
			
			var replaceText = {'[áàãâä]'	  : 'a',
					'[éèêë&]'	  : 'e',
					'[íìîï]'	   : 'i',
					'[óòõôö]'	  : 'o',
					'[úùûü]'	   : 'u',
					'[ç]'		  : 'c',
					'[ñ]'		  : 'n',
					'( )'		  : '_',
					'[^a-z0-9\-_]' : '',
					'-+'		   : '-',
					'[.]'		  : '_'
			}; 

			for(index in replaceText){
				var er = new RegExp(index,'g');
				texto = texto.replace(er,replaceText[index]);
			}
			return document.form1.segundo.value = texto + ".php";
		
		}

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza... Funcionou. Valeu.

 

Aproveito para perguntar, também conseguiria se eu usasse JQuery, enviando os dados para executar a função do php e retornar dentro do input?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim , soh fazer a chamada ajax para a pagina que tem a função...

 

por exemplo

 

function LimpaTexto(elemento){
		 var texto = elemento.value.toLowerCase();
		 $.get("suaPagina.php", { 'acao': "LimpaTexto", 'texto': texto },
			function(data){
				  document.form1.segundo.value = data + ".php";
		 } );
}

t+

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.