Jump to content


Photo

Contador De Palavra


  • Faça o login para participar
16 replies to this topic

#1 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 29/07/2006, 10:50

Dae galerinha.. blz? (y)

Bem.. estou querendo montar um contador de palavra.. Só que tá dando erro no script..
Desenvolvi ele baseado no contador de letras.

Script:
<script language="JavaScript">
function Contar(Campo) { 

	var numero = 0;
	var total = document.exemplo.principal.length;
	var texto = document.exemplo.principal.value;
	var letras = 0;
	var fim_letra = total;

	for (var i  = 0; i < total; i++) {
	  if (texto.charAt(i) == " ") {

	for (var cont = i+1; cont < fim_letra; cont++) {
	  if (texto.charAt(cont) <> " ") {
		 letras++;
		 document.getElementById("Qtd").innerText = letra
		  } else {
		 fim_letra = cont;
	  }
	}
	  }

	}

}
</script>

<div id="Qtd">0</div>
<textarea rows="10" onKeyUp="Contar(this)"></textarea>

Bem.. a idéia é a seguinte, a cada letra que o usuário digitar, ele irá fazer um loop + teste.

Se ele digitar uma letra vazia, o for vai contar quantas letras são diferentes de " " para frente..
Ex Prático.:
1) P
....1

2) Po
....12

3) Po s
....12 1

4) Po ss
....12 12

5) Po ssa
....12 123

6) Po ssam
....12 1234

7) Po ssam a
....12 1234 1

8) Po ssam ai
....12 1234 12

Eu queria que ele mostrasse ele mostrasse no div a soma das letras, toda vez que pressionar uma tecla, assim ele vai contando em quanto o usuário esta digitando. Quando ele apertar espaço, ele vai zerar o contador.

Bem, por fim, com isso eu consigo controlar o tamanho da palavra digitada, pois se a pessoa tentar escrever: aaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccccccccccddddddddd... eu consigo alertar para evitar que de erro em quebra de página.
;)

==== Editando ===
Corrigindo erro de espaçamento no exemplo de contafem de letra.
=============

Aguardo resposta e desde já agradeço,
Abraços,
Anderson Possamai

Edição feita por: possamai, 29/07/2006, 10:52.

"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#2 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 29/07/2006, 13:19

Diferente em Javascript é !=, não <>.
Klaus Paiva
Conheça também: Taperás

#3 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 29/07/2006, 19:14

Diferente em Javascript é !=, não <>.


Rapaz.. bem lembrado... (y) .. tow trabalhando com uns 3 tipos de linguagem que tow até trocando.. heheh.
e Isso que ainda estudo java na faculdade... :rolleyes: ..

Bem.. sobre o código.. descubri que o que eu montei ta errado.. eu pensei em faze uma coisa.. e meu código faz outra.. hehehe.. vow v q q eu faço aki..

Abraços
Anderson Possamai
"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#4 pgnall

pgnall

    Enable

  • Usuários
  • 383 posts
  • Sexo:Masculino
  • Localidade:http://eduardo.sganzerla.net

Posted 29/07/2006, 20:07

não se é o melhor modo, mas eu pensei no seguinte:

function conta(vl){
	 contadorS = vl.split(" ");
	 contador = contadorS.length;
	 return contador;
}

Obs: Não testei...
Eduardo Sganzerla
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀


www.Eu Sei Escrever.com.br - Adote esta campanha!

#5 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 29/07/2006, 20:45

não se é o melhor modo, mas eu pensei no seguinte:

function conta(vl){
	 contadorS = vl.split(" ");
	 contador = contadorS.length;
	 return contador;
}

Obs: Não testei...



Dae pgnall... Blz??? Bem... Não chegei a testar seu code, porém quebrei a cabeça aqui e conseguir resolver.. :boxing:

Por curiosidade... o que faz o code split().. Por acaso ele retira o que for passado pra ele (no seu exemplo seria o espaço?)..

Pessoal.. consegui resolver.. segue abaixo o code... :lol:
Bom.. não sei se ficou da melhor maneira, porém.. funcionou..!! ;)

Se alguém precisar, pode usar, até declarei 2 varíaveis configuráveis:
Max Altere para o tamanho máximo da palavra aceita.
Msg Altera para que apareça a mensagem quando ultrapassar o máximo.

Vamos lá.

<script>
function contaChar(campo){

// Declaração de Variáveis:
	// Variavéis Fixas (Não Alterar)
	var cont = 0;
	var letras = 0;
	var total = campo.value.length;
	var texto1 = campo.value;
	var ultimaLetra = texto1.charAt(total-1);
	var maximo = 0;
	
	// Variáveis configuráveis (Podem Alterar)
	var max = 10; //Este valor é o máximo de letras aceitas
	var Msg = "Palavra muito extensa!" // Mensagem que aparecerá no Alerta
	

/* Aqui é feito a contagem de letras da palavra
	Pega a ultima letra e conta quantas tem
	até chegar no espaço vazio ( " " ). */
	if (ultimaLetra != " "){
	  for (cont = total; cont > 0; cont--) {
		if (texto1.charAt(cont-1) == " ") {
		 cont = 0;
		} else {
		 letras = letras + 1;
		   if (letras > max){
			 maximo = 10;
		   }
		  
		}
	  }
	} 
// Testa o tamanho da Palavra
	  if (letras > max) {
		alert (Msg);
		campo.value = campo.value.substr(0,(campo.value.length-1));
		letras = maximo;
	  }

// Altera As Divs do Texto
  document.getElementById("char").innerHTML = document.getElementById("texto").value.length;
  document.getElementById("qtd").innerHTML = letras;
}
</script>

<textarea rows="10" name="texto" id="texto" onkeypress="contaChar(this)" onKeyUp="contaChar(this);" onKeyDown="contaChar(this);"></textarea>

<br>
<font face="Verdana" size="2">
<b>Somente palavras com Menos que 10 letras!</b>
</font>
</br>

<br>
<font face="Verdana" size="1">
<b>Total:</b> <div id="char">0</div>
<b>Palavra:</b> <div id="qtd">0</div>
</font>
</br>

Caso apareça alguma dúvida.. é só postar ae que eu tiro (se eu conseguir) :P ...

Obrigado a ajuda de todos,
Abraços,
Anderson Possamai
"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#6 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 29/07/2006, 20:57

O split divide um string no caracter indicado e coloca o resultado em um array por exemplo:

var texto = "Vamos a la praia!";
var texto = texto.split(" ");
document['write'](texto[2]);
document['write'](texto.length);

Edição feita por: bimonti, 29/07/2006, 21:09.

WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#7 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 29/07/2006, 21:54

não se é o melhor modo, mas eu pensei no seguinte...

Realmente, não é o melhor método mesmo. Segue um método mais funcional, criado por mim agora: =)

String.prototype.count_words = function ()
{
	function g(e)
	{
		return e.match(/[a-zA-Z0-9\x80-\xff]/);
	}

	var a = this.split(/\s+/);

	if (a.filter) { // JS 1.6+
		a = a.filter(g);
	} else { // JS 1.2+/1.6-
		var f = new Array();

		for (var i = 0; i < a.length; i++) {
			if (g(a[i])) {
				f.push(a[i]);
			}
		}

		a = f;
	}

	return a.length;
}
Ter voltado à aprender JavaScript me fez um bem imensurável viu ! :D

Usando:

var sentence = 'The quick brown fox jumps over the lazy dog';

document.write(sentence.count_words());
[]’s :DAté mais

#8 possamai

possamai

    Loading Intelligence... :)

  • Usuários
  • 146 posts
  • Sexo:Masculino
  • Localidade:Toledo
  • Interesses:Programação, Website, Manutenção em computadores, quase tudo relacionado á Informática.

Posted 30/07/2006, 21:34

dae Paulo Freitas, blz?

Bem.. meu humilde conhecimento não se compara (pelo ver) a sua vasta experiência... :assobio:

Bem, obrigado pelo seu post (apesar de eu não ter intendido mto sobre seu código), mas digamos assim, como um bom programador, vou me esforçar para entendê-lo.. hehhee.. :boxing:

A princípio, estou feliz por ter consiguido, "da minha maneira", mas concerteza vou estudar a sua...

Novamente, obrigado pelo exemplo.
Abraços grande amigo,
Anderson Possamai
(y) :D
"Quem ri por último é retardado! (Ou tem "Lag")"
-----------------
Aprendendo PHP .. Javascript .. Ajax!

#9 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 31/07/2006, 07:35

hahaha mas esse garoto conhece muito! :D

Vida, esse lista aqui engloba o que?
\x80-\xff

Eu vi que é a representação hexadecimal de dois caracteres mas... quais são eles hehehe? Ah, se você tiver uma tabela também dando sopa por aí nos seus bookmarks! :D
Klaus Paiva
Conheça também: Taperás

#10 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 11/08/2006, 15:55

hahaha mas esse garoto conhece muito! :D

Vida, esse lista aqui engloba o que?

\x80-\xff

Eu vi que é a representação hexadecimal de dois caracteres mas... quais são eles hehehe? Ah, se você tiver uma tabela também dando sopa por aí nos seus bookmarks! :D

Opa... ;)

Desculpe-me pelo atraso, além de eu não estar mais acessando o fórum com freqüência já havia me esquecido deste tópico, he he, já estava na 2ª página... :unsure:

A notação hexadecimal \x80-\xff engloba os caracteres ASCII extendidos (que mudam conforme o charset usado), que vão do 128 ao 255. =)

Quanto à tabela, vixi... como é relativo ao charset, cada um tem a sua, rs. A do ISO/IEC 8859-1 eu tenho gravada aqui, he he: http://en.wikipedia....59-1#Code_table

[]’s :DAté mais

#11 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 25/09/2017, 08:58

Carte Levitra What Are The Ingredients Of Amoxicillin cialis Cheap Levitra Canada
Illegal Cialis Medicinale Levitra Real Cod Only Stendra No Prescription Medication cheap cialis Prezzo Kamagra Thailandia Amoxicillin And Drinking Beer
Valor Del Cialis Cytotec Without Prescription cialis Walpharm Cialis Generico Donne Canada Cialis

#12 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 09/10/2017, 00:37

Buy Orlistat Online Canada levitra vs cialis Viagra Online Niederlande
Calvicie Propecia Achat Cialis Express viagra Propecia E Infertilidad Propecia Canadian No Prescription

#13 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 24/10/2017, 17:25

Zithromax Gum Disease Achat Alli Amoxicillin And Elderly cialis Prix Du Lioresal Purchase Cephalexin Online
Levitra Drug Interactions Propecia Infarto cialis buy online Over The Conter Chlamydia Treatment Amoxicillin Topical Propecia Thinning Hair Buy Orlistat Over The Counter
Cytotec 20mg Canada Levitra 5 Mg Foto viagra Comment Se Procurer Du Cytotec

#14 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 24/10/2017, 22:12

Propecia Monedas Ou Trouver Du Tadalis Sx Pas Cher viagra Cialis 20mg Filmtabletten 4 Stuck Kaufen Viagra Generic Kaufen In Holland

#15 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 25/10/2017, 03:43

Cialis Eli Lilly Doxycycline Next Day Delivery Expired Amoxicillin viagra Worldwide Zentel Next Day Tablet Online Pharmacy Uk Viagra
Ou Acheter Lioresal Does Propecia Cause Depression Effets Cialis 10mg viagra Progesterone Cheap On Line Store Forte Propecia Generico




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq