Função Javascript para mostrar/inverter par e impar de uma string

Função Javascript para mostrar/reverter par e impar em uma string

Vamos a uma função desenvolvida por mim, para mostrar ou inverter caracteres pares e impares de uma determinada string, facilitando quando vc queira procurar ou selecionar somente determinados caracteres de uma palavra.

Surgiu uma necessidade há uns dias atrás, eu precisava receber uma determinada string, separar os caracteres pares dos impares e fazer alguams inversões. Esta função desenvolvida, possui 4 funcionalidades, são elas:

  • Mostrar/Inverter os caracteres pares de uma string;
  • Mostrar/Inverter os caracteres impares de uma string;
  • Mostrar um determinado caractere, impar ou par
  • Transformar a string num vetor;

Segue o código da função:

<script type="text/javascript">
	String.prototype.parImpar = function (action,response,position){
		var par = [];impar = [];
		string = this.match(/[^|]/gi);
		for(i=0;i<string.length;i++){
			i%2!==0 ? par.push(string&#91;i&#93;) : impar.push(string&#91;i&#93;);
		}
	    if(typeof action !== undefined && typeof response !== undefined){
			switch(action){
				case "mostrar":{
					switch(response){
						case "impar":{
							if(typeof position !== undefined && isNaN(position) == false)
								return(impar&#91;position&#93;);
							else
								return(impar.join(""));
							break;
						}
						case "par":{
							if(typeof position !== undefined && isNaN(position) == false)
								return(par&#91;position&#93;);
							else
								return(par.join(""));
							break;
						}
						case "array":{
							return(string);
							break;
						}
						default: {return("")};
					}
					break;
				}
				case "inverter":{
					switch(response){
						case "impar":{
							return(impar.reverse().join(""));
							break;
						}
						case "par":{
							return(impar.reverse().join(""));
							break;
						}
						default: {return("")};
					}
				}
				default: return("");
			}
		}		
	}
	</script>

Parametros da Função:

  • Mostrar: para informar a ação desejada, neste caso, mostrar os caracteres.
    • par: Usado junto com a ação, informa que deve ser mostrado os caracteres impares
    • impar: Usado junto com a ação, informa que deve ser mostrado os caracteres pares
    • array: Usado junto com a ação, informa que deve converter o texto num vetor
  • Inverter: para informar a ação desejada, neste caso, inverter os caracteres.
    • par: Usado junto com a ação, informa que deve ser mostrado os caracteres impares
    • impar: Usado junto com a ação, informa que deve ser mostrado os caracteres pares

Como Utilizar

Você pode utilizar esta função, como um método de uma variável. Ex:

   meutexto = "Lucas";
   alert(meutexto.parImpar("mostrar","par"));

neste caso, seria mostrado na tela somente os caracteres pares do texto “Lucas”

Exemplos de Utilização

Mostrar os caracteres pares:

   meutexto = "Lucas";
   alert(meutexto.parImpar("mostrar","par"));

Mostrar os caracteres impares:

   meutexto = "Lucas";
   alert(meutexto.parImpar("mostrar","impar"));

inverter os caracteres pares:

   meutexto = "Lucas";
   alert(meutexto.parImpar("inverter","par"));

inverter os caracteres impares:

   meutexto = "Lucas";
   alert(meutexto.parImpar("inverter","impar"));

Remover os caracteres pares:

   meutexto = "Lucas";
   meutexto = meutexto.parImpar("mostrar","impar");

Remover os caracteres impares:

   meutexto = "Lucas";
   meutexto = meutexto.parImpar("mostrar","impar");

Converter texto num vetor:

   meutexto = "Lucas";
   meutexto = meutexto.parImpar("mostrar","array");

Mostrar o 3º caractere par:

   meutexto = "Lucas";
   meutexto = meutexto.parImpar("mostrar","par",3);

Mostrar o 5º caractere impar:

   meutexto = "Lucas";
   meutexto = meutexto.parImpar("mostrar","impar",5);

direitos autorais, Lucas Peperaio
Veja o exemplo online:
http://projetos.lucaspeperaio.com/parImpar/

ps* lembrando que, eu considerei o primeiro caractere como sendo “1”, e não “0” como na programação. Caso queira que a função considere o primeiro caractere como “0”, altere o “for” dela assim:

for(i=0;i

Lucas Peperaio

Estudante de Ciência da Computação, trabalho com desenvolvimento web há 5 anos e com hardware há 8. Nas horas vagas, sou entusiasta de Overclock, Casemod e Benchmarks, além é claro dos Games. Apaixonado por informática e pela vida, procuro compartilhar meus conhecimentos e assim, ajudar as pessoas. Siga-me no youtube, posto semanalmente muito material sobre Hardware, tecnologia e games em geral: Clique aqui

Receba gratuitamente em seu E-mail
Novos artigos do meu Blog!


Após o Cadastro você receberá um Email Automático. Clique no link enviado para Ativar e receber as novidades.

Categorias do site





1 Comentário Deixe o seu

  1. Valdir

    Olá Lucas, tudo bem? Gostaria de saber se vc faz, tem ou indica um aplicativo que faça o seguinte.

    Tenho um arquivo em .txt ele é variável, hora tem 5mil linhas, outra hora ele tem 50mil linhas, outra hora pode ter 10mil linhas as linhas são strings variáveis, pode ter 01 dezena, 05 dezenas, 30dezenas….

    exemplo: 01 10 22 22 15 06 01 03 20 01 06 01 25 06 21 ==================== Bom, o que eu necessito que o aplicativo faça é o seguinte: que ao carregar o arquivo; ele verifica a duplicidade das strings; que tenha informe qual a escala de duplicidade e quantidade das duplicidades

    exemplo A B 01 03 04 05 06 07 08 09 10 12 13 14 16 17 21 1 01 03 04 05 06 07 08 09 10 12 13 14 16 18 21 1 01 03 04 05 06 07 09 10 11 12 13 14 18 19 24 2 01 03 04 05 06 07 08 09 11 12 13 16 17 21 24 2 01 03 04 05 06 07 08 09 11 12 13 16 18 21 24 2 01 03 04 05 06 07 08 09 11 12 16 17 18 21 24 2 01 03 04 05 06 07 08 09 11 13 16 17 18 21 24 2 01 03 04 05 06 07 08 09 12 13 16 17 18 21 24 2 01 03 04 05 06 07 08 11 12 13 16 17 18 21 24 2 01 03 04 05 06 07 09 11 12 13 16 17 18 21 24 2 01 03 04 05 06 08 09 11 12 13 16 17 18 21 24 2 01 03 04 05 07 08 09 11 12 13 16 17 18 21 24 2 01 02 03 04 06 07 08 10 11 12 13 16 17 19 21 2 01 02 03 04 06 07 08 10 11 12 13 16 17 21 24 2 01 02 03 04 06 07 08 10 11 12 13 16 19 21 24 2 01 02 03 04 06 07 08 10 11 12 13 17 19 21 24 2 01 02 03 04 06 07 08 10 11 12 16 17 19 21 24 2 01 02 03 04 06 07 08 10 11 13 16 17 19 21 24 2 01 02 03 04 06 07 08 10 12 13 16 17 18 19 21 2 01 02 03 04 06 07 08 10 12 13 16 17 18 21 24 2 01 02 03 04 06 07 08 10 12 13 16 17 19 21 24 3 01 02 03 04 06 07 08 10 12 13 16 18 19 21 24 2 01 02 03 04 06 07 08 10 12 13 17 18 19 21 24 2 01 02 03 04 06 07 08 10 12 16 17 18 19 21 24 2 01 02 03 04 06 07 08 10 13 16 17 18 19 21 24 2 01 02 03 04 06 07 08 11 12 13 16 17 19 21 24 2 01 02 03 04 06 07 08 12 13 16 17 18 19 21 24 2 01 02 03 04 06 07 10 11 12 13 16 17 19 21 24 2 01 02 03 04 06 07 10 12 13 16 17 18 19 21 24 2 01 02 03 04 06 08 10 11 12 13 16 17 19 21 24 2 01 02 03 04 06 08 10 12 13 16 17 18 19 21 24 2 01 02 03 04 07 08 10 11 12 13 16 17 18 19 21 2 01 02 03 04 07 08 10 11 12 13 16 17 19 21 24 2 01 02 03 04 07 08 10 12 13 16 17 18 19 21 24 2 01 02 03 04 07 08 09 10 11 12 13 16 17 19 21 2 01 02 03 04 07 08 09 10 12 13 16 17 18 19 21 2 01 02 03 04 07 08 10 11 12 13 16 17 18 19 21 2 01 02 03 04 06 07 08 09 10 12 13 16 17 19 21 2 01 02 03 04 06 07 08 09 10 12 13 16 17 21 24 2 01 02 03 04 06 07 08 09 10 12 13 16 19 21 24 2 01 02 03 04 06 07 08 09 10 12 13 17 19 21 24 2 01 02 03 04 06 07 08 09 10 12 16 17 19 21 24 2 01 02 03 04 06 07 08 09 10 13 16 17 19 21 24 2 01 02 03 04 06 07 08 09 12 13 16 17 19 21 24 2 01 02 03 04 06 07 08 10 11 12 13 16 17 19 21 2 01 02 03 04 06 07 08 10 11 12 13 16 17 21 24 2 01 02 03 04 06 07 08 10 11 12 13 16 19 21 24 2 01 02 03 04 06 07 08 10 11 12 13 17 19 21 24 2 01 02 03 04 06 07 08 10 11 12 16 17 19 21 24 2 01 02 03 04 06 07 08 10 11 13 16 17 19 21 24 2 01 02 03 04 06 07 08 10 12 13 16 17 19 21 24 3 01 02 03 04 06 07 08 11 12 13 16 17 19 21 24 2 01 02 03 04 06 07 09 10 12 13 16 17 19 21 24 2 01 02 03 04 06 07 10 11 12 13 16 17 19 21 24 2 01 02 03 04 06 08 09 10 12 13 16 17 19 21 24 2 01 02 03 04 06 08 10 11 12 13 16 17 19 21 24 2 01 02 03 04 07 08 09 10 11 12 13 16 17 19 21 2 01 02 03 04 07 08 09 10 12 13 16 17 19 21 24 2 01 02 03 04 07 08 10 11 12 13 16 17 19 21 24 2 01 02 03 04 06 07 08 09 10 12 13 16 17 19 21 2 01 02 03 04 06 07 08 09 10 12 13 16 17 21 24 2 01 02 03 04 06 07 08 09 10 12 13 16 19 21 24 2 01 02 03 04 06 07 08 09 10 12 13 17 19 21 24 2 01 02 03 04 06 07 08 09 10 12 16 17 19 21 24 2 01 02 03 04 06 07 08 09 10 13 16 17 19 21 24 2 01 02 03 04 06 07 08 09 12 13 16 17 19 21 24 2 01 02 03 04 06 07 08 10 12 13 16 17 18 19 21 2 01 02 03 04 06 07 08 10 12 13 16 17 18 21 24 2 01 02 03 04 06 07 08 10 12 13 16 17 19 21 24 3 01 02 03 04 06 07 08 10 12 13 16 18 19 21 24 2 01 02 03 04 06 07 08 10 12 13 17 18 19 21 24 2 01 02 03 04 06 07 08 10 12 16 17 18 19 21 24 2 01 02 03 04 06 07 08 10 13 16 17 18 19 21 24 2 01 02 03 04 06 07 08 12 13 16 17 18 19 21 24 2 01 02 03 04 06 07 09 10 12 13 16 17 19 21 24 2 01 02 03 04 06 07 10 12 13 16 17 18 19 21 24 2 01 02 03 04 06 08 09 10 12 13 16 17 19 21 24 2 01 02 03 04 06 08 10 12 13 16 17 18 19 21 24 2 01 02 03 04 07 08 09 10 12 13 16 17 18 19 21 2 01 02 03 04 07 08 09 10 12 13 16 17 19 21 24 2 01 02 03 04 07 08 10 12 13 16 17 18 19 21 24 2 01 02 04 05 06 07 08 10 11 12 13 15 16 17 19 2 01 02 04 05 06 07 08 10 11 12 13 15 16 17 21 2 01 02 04 05 06 07 08 10 11 12 13 15 16 19 21 2 01 02 04 05 06 07 08 10 11 12 15 16 17 19 21 2 01 02 04 05 06 07 08 10 11 13 15 16 17 19 21 2 01 02 04 05 06 07 08 10 12 13 15 16 17 19 21 2 01 02 04 05 06 07 08 11 12 13 15 16 17 19 21 2 01 02 04 05 06 07 10 11 12 13 15 16 17 19 21 2 01 02 04 05 06 08 10 11 12 13 15 16 17 19 21 2 01 02 04 05 07 08 10 11 12 13 15 16 17 19 21 2 01 02 04 06 07 08 10 11 12 13 15 16 17 19 21 2 01 02 05 06 07 08 10 11 12 13 15 16 17 19 21 2 02 04 05 06 07 08 10 11 12 13 15 16 17 19 21 2 01 02 05 06 07 08 09 10 12 13 14 17 19 21 24 2 01 02 03 05 06 07 08 09 10 12 13 14 18 19 21 2 01 02 03 05 06 07 08 10 11 12 13 14 18 19 21 2 01 02 04 05 06 07 08 10 11 12 13 15 16 17 19 2 01 02 04 05 06 07 08 10 11 12 13 15 16 17 21 2 01 02 04 05 06 07 08 10 11 12 13 15 16 19 21 2 01 02 04 05 06 07 08 10 11 12 15 16 17 19 21 2 01 02 04 05 06 07 08 10 11 13 15 16 17 19 21 2 01 02 04 05 06 07 08 10 12 13 15 16 17 19 21 2 01 02 04 05 06 07 08 11 12 13 15 16 17 19 21 2 01 02 04 05 06 07 10 11 12 13 15 16 17 19 21 2 01 02 04 05 06 08 10 11 12 13 15 16 17 19 21 2 01 02 04 05 07 08 10 11 12 13 15 16 17 19 21 2 01 02 04 06 07 08 10 11 12 13 15 16 17 19 21 2 01 02 05 06 07 08 10 11 12 13 15 16 17 19 21 2 02 04 05 06 07 08 10 11 12 13 15 16 17 19 21 2 01 03 04 05 06 07 08 09 11 12 13 16 17 21 24 2 01 03 04 05 06 07 08 09 11 12 13 16 18 21 24 2 01 03 04 05 06 07 08 09 11 12 16 17 18 21 24 2 01 03 04 05 06 07 08 09 11 13 16 17 18 21 24 2 01 03 04 05 06 07 08 09 12 13 16 17 18 21 24 2 01 03 04 05 06 07 08 11 12 13 16 17 18 21 24 2 01 03 04 05 06 07 09 11 12 13 16 17 18 21 24 2 01 03 04 05 06 08 09 11 12 13 16 17 18 21 24 2 01 03 04 05 07 08 09 11 12 13 16 17 18 21 24 2 01 03 04 05 06 07 09 10 11 12 13 14 18 19 24 2 01 02 03 05 06 07 08 09 10 12 13 14 18 19 21 2 01 02 03 05 06 07 08 10 12 13 14 17 18 19 21 2 01 02 05 06 07 08 09 10 12 13 14 17 19 21 24 2 01 02 03 05 06 07 08 10 11 12 13 14 18 19 21 2 01 02 03 05 06 07 08 10 12 13 14 17 18 19 21 2 01 04 05 06 07 08 09 10 11 12 13 14 15 18 21 2 01 04 05 06 07 08 09 10 11 12 13 14 15 21 24 2 01 04 05 06 07 08 09 10 11 12 13 15 18 21 24 2 01 04 05 06 07 08 09 10 11 12 14 15 18 21 24 2 01 04 05 06 07 08 09 10 11 13 14 15 18 21 24 2 01 04 05 06 07 08 09 10 12 13 14 15 18 21 24 2 01 04 05 06 07 08 09 11 12 13 14 15 18 21 24 2 01 04 05 06 07 08 10 11 12 13 14 15 18 21 24 2 01 04 05 06 07 09 10 11 12 13 14 15 18 21 24 2 01 04 05 06 07 09 10 11 12 13 15 17 18 21 24 2 01 04 05 06 08 09 10 11 12 13 14 15 18 21 24 2 01 04 05 07 08 09 10 11 12 13 14 15 18 21 24 2 01 04 05 06 07 08 09 10 11 12 13 14 15 18 21 2 01 04 05 06 07 08 09 10 11 12 13 14 15 21 24 2 01 04 05 06 07 08 09 10 11 12 13 15 18 21 24 2 01 04 05 06 07 08 09 10 11 12 14 15 18 21 24 2 01 04 05 06 07 08 09 10 11 13 14 15 18 21 24 2 01 04 05 06 07 08 09 10 12 13 14 15 18 21 24 2 01 04 05 06 07 08 09 11 12 13 14 15 18 21 24 2 01 04 05 06 07 08 10 11 12 13 14 15 18 21 24 2 01 04 05 06 07 09 10 11 12 13 14 15 18 21 24 2 01 04 05 06 07 09 10 11 12 13 15 18 19 21 24 2 01 04 05 06 08 09 10 11 12 13 14 15 18 21 24 2 01 04 05 07 08 09 10 11 12 13 14 15 18 21 24 2 01 04 05 06 07 09 10 11 12 13 15 17 18 21 24 2 01 04 05 06 07 09 10 11 12 13 15 18 19 21 24 2 04 05 06 09 10 11 12 13 15 16 17 18 19 21 24 2 04 05 06 08 09 10 11 12 13 14 16 17 18 21 24 2 04 05 06 08 09 10 11 12 13 14 16 17 19 21 24 2 04 05 06 08 09 10 11 12 13 14 16 18 19 21 24 2 04 05 06 08 09 10 11 12 14 16 17 18 19 21 24 2 04 05 06 08 09 10 11 13 14 16 17 18 19 21 24 2 04 05 06 08 09 10 12 13 14 16 17 18 19 21 24 2 04 05 06 08 09 11 12 13 14 16 17 18 19 21 24 2 04 05 06 08 10 11 12 13 14 16 17 18 19 21 24 2 04 05 06 09 10 11 12 13 14 16 17 18 19 21 24 2 04 05 06 09 10 11 12 13 15 16 17 18 19 21 24 2 04 05 08 09 10 11 12 13 14 16 17 18 19 21 24 2 04 05 06 07 08 10 11 12 13 14 16 17 18 21 24 1 04 05 06 07 08 10 11 12 13 14 16 17 19 21 24 1 04 05 06 07 08 10 11 12 13 14 16 18 19 21 24 1 04 05 06 07 08 10 11 12 14 16 17 18 19 21 24 1 04 05 06 07 08 10 11 13 14 16 17 18 19 21 24 1 04 05 06 07 08 10 12 13 14 16 17 18 19 21 24 1 04 05 06 07 08 11 12 13 14 16 17 18 19 21 24 1 04 05 06 07 09 10 11 12 13 14 16 17 18 21 24 1 04 05 06 07 09 10 11 12 13 14 16 17 19 21 24 1 04 05 06 07 09 10 11 12 13 14 16 18 19 21 24 1 04 05 06 07 09 10 11 12 14 16 17 18 19 21 24 1 04 05 06 07 09 10 11 13 14 16 17 18 19 21 24 1 04 05 06 07 09 10 12 13 14 16 17 18 19 21 24 1 04 05 06 07 09 11 12 13 14 16 17 18 19 21 24 1 04 05 06 07 10 11 12 13 14 16 17 18 19 21 24 1 04 05 06 08 09 10 11 12 13 14 16 17 18 21 24 2 04 05 06 08 09 10 11 12 13 14 16 17 19 21 24 2 04 05 06 08 09 10 11 12 13 14 16 18 19 21 24 2 04 05 06 08 09 10 11 12 14 16 17 18 19 21 24 2 04 05 06 08 09 10 11 13 14 16 17 18 19 21 24 2 04 05 06 08 09 10 12 13 14 16 17 18 19 21 24 2 04 05 06 08 09 11 12 13 14 16 17 18 19 21 24 2 04 05 06 08 10 11 12 13 14 16 17 18 19 21 24 2 04 05 06 09 10 11 12 13 14 16 17 18 19 21 24 2 04 05 07 08 09 10 11 12 13 14 16 17 18 21 24 1 04 05 07 08 09 10 11 12 13 14 16 17 19 21 24 1 04 05 07 08 09 10 11 12 13 14 16 18 19 21 24 1 04 05 07 08 09 10 11 12 14 16 17 18 19 21 24 1 04 05 07 08 09 10 11 13 14 16 17 18 19 21 24 1 04 05 07 08 09 10 12 13 14 16 17 18 19 21 24 1 04 05 07 08 09 11 12 13 14 16 17 18 19 21 24 1 04 05 07 08 10 11 12 13 14 16 17 18 19 21 24 1 04 05 07 09 10 11 12 13 14 16 17 18 19 21 24 1 04 05 08 09 10 11 12 13 14 16 17 18 19 21 24 2

    Veja que na coluna A tem as strings, na coluna B tem a contagem das duplicidades das strings, Quais são as escalas de duplicidades que contém o arquivo acima? 01 02 03

    escala 01, são strings exclusivos, que não se repetem escala 02, são strings que se repetem por 02 vzs escala 03, são strings que se repetem por 03 vzs

    bom, o aplicativo abre o arquivo, mostra a escala que tem no arquivo, aí digamos que eu quero a escala 02, ele separa para mim somente as strings exclusivas que se repetiram 02 vzs. Que me dê a opção escolha da escala 01 separada ou a escala 01 com a 02, a escala 02 com a 03, em arquivo que a escala seja maior, tipo:

    escala 01 02 03 04 05 06 07 08 digamos que agora eu quero as strings das escalas 04-06 e 08, aí ele separa e me dê a opção para gravar em outro arquivo as strings exclusivas das 03 escalas.

    Bom, sei que parece maluco, mas necessito disso para agilizar meu trabalho, se vc conhece ou já tem um aplicativo que faça isso, se puder indicar e caso vc faça, se puder me dar o orçamento, se eu tiver condiçoes de pagar podemos negociar.