Conteggio di un carattere scelto in una frase

Arretrati lista "Una demo Dhtml a settimana"
di Risorse.net

CONOSCENZE CONSIGLIATE PER QUESTO ARTICOLO: Html, Javascript

COMPATIBILITÀ: Ms Ie, Netscape, Opera
FILES ESTERNI: Nessuno
Visualizza la demo
Scarica la demo

La sezione più fornita di esempi all'interno dell'archivio di Risorse.net è quella dedicata alle Utilities varie. Anche in questa mailing list sono state molte le utilità di tutti i tipi che sono state pubblicate in questi cinquanta ed oltre lanci settimanali. Oggi vedremo uno script che, a nostro modo di vedere, non ha certo le caratteristiche di una utility, ma dimostra come possa essere flessibile il linguaggio Dynamic Html. In pratica, nell'esempio sono presenti due campi input, uno in cui va inserito un carattere, nell'altro la frase. Lo script, calcolerà quindi quante volte quello specificato carattere appare nel periodo inserito. Per far ciò, è necessario utilizzare la sintassi che qui di seguito riporteremo (alcuni commenti sono stati tratti da quelli originali inseriti dall'autore, Claudio Corrado, che gentilmente ringraziamo).

function carlength(valore) {
if (valore>1) {
alert("Massimo un carattere")
document.form1.car.value=""
document.form1.car.focus()
}
}


Questa prima parte di script verifica che nel campo input in cui specificare un determinato carattere, ne venga inserito uno ed uno solo.

// funzione per il conteggio delle lettere E nella frase
function ver() {
cont=0
brev=document.form1
cval=brev.car.value
for (a=0; a<brev.inp.value.length; a++) {
// controlla ogni lettera della frase con substring
part=brev.inp.value.substring(a,a+1)
// invia alla funzione no() se nella frase non c'e il carattere scelto
if (brev.inp.value.indexOf(cval)==-1) {
no()
}
// aggiunge 1 al contatore carattere se la substring è uguale a quello scelto
if (part.indexOf(cval)!=-1) {
cont++
// mostra il risultato dopo aver controllato tutta la frase
if (a==brev.inp.value.length-1) {
alert("Hai inserito una frase con " + cont + " " + cval)
break
}
}
}
// azzera i campi e ridà il focus a al primo
document.form1.inp.value=""
document.form1.car.value=""
document.form1.car.focus()
}
// funzione che avverte che la frase inserita è senza il carattere prescelto
function no() {
alert("Hai inserito una frase senza " + cval)
// azzera i campi e ridà il focus a al primo
document.form1.inp.value=""
document.form1.car.value=""
document.form1.car.focus()
}


Questa invece è la parte rimanente dello script. Preceduti dai segni // sono presenti i commenti al sorgente inseriti dall'autore dello script. Terminata l'analisi dell'<HEAD>, il <BODY> si presenta con l'assegnazione del focus al primo campo input.

<body onLoad="javascript:document.form1.car.focus()">

Infine, inseriamo il normale codice per inserire un form e qualche richiamo al Javascript esaminato nell'<HEAD>.

<form name="form1">
<p>Immetti il carattere che vuoi conteggiare &nbsp;
<input type=text name="car" size=1 onBlur="carlength(this.value.length)">
<p>Immetti una frase &nbsp;
<input type=text name="inp">
<p><input type=button value="controlla" onClick="ver()">
</form>


N.B.: Per la realizzazione dei tuoi siti Web, Risorse.net ti offre una nuova sezione, ideale soprattutto per i Web designers. Un grande archivio di True Type Fonts, con articoli ad hoc per la comprensione e l'utilizzo degli stessi. Clicca qui per visitarla: www.risorse.net/font.

© Risorse.net (www.risorse.net)
pagina in versione stampabile:
http://www.risorse.net /dhtml/teoria/2000/ottobre/57.asp?print=ok