Newsgroup: it.comp.www.asp
Titolo: Conversione caratteri speciali

Ciao a tutti,
volevo sapere se qualcuno conosce una funzione in VBscript che permette
di traformare caratteri come è,à,',ecc... (speciali insomma),
provenienti da una textfield precedentemente creata, in htmlchar, in
modo che poi lo stesso testo digitato, possa essere visualizzato
correttamente in un'altra pag html... Dimenticavo di dire che il passo
intermedio è quello di salvare il testo della textfield in un campo di
un database, ma comunque questo lo so già fare...
Grazie a tutti!!!

la soluzione migliore e' far sostituire al browser i caratteri speciali.
Mi sa che ben presto questo script trovera' posto nelle FAQ...
<script language="javascript">
function checkForm(){
/*Questa funzione si accerta che i campi del form siano non vuoti,
in realta' non serve, al parser, ma lo chiama passandogli 2 valori: valore d
ella stringa da controllare e il nome che ha nel form il campo che la contie
ne*/
 if(document.forms[0].elements[1].value!=""){
  if(document.forms[0].elements[2].value!=""){
   if(document.forms[0].elements[3].value!=""){
    document.forms[0].vai.value=1
    ///document.forms[0].submit();
/*la funzione   del parser l'ho chiamata isApostrofo(percorso per il campo
da verificare,'stringa col nome del Campo')*/
   isApostrofo(document.forms[0].data.value,'data')
    isApostrofo(document.forms[0].titolo.value,'titolo')
   }
   else{alert('Inserisci un titolo al messaggio')}
  }
  else{alert('Inserisci la password')}
 }
 else{alert('Inserisci uno username valido')}
}
/*creo l'oggetto matrice*/
function myArray(n){
this.length=n
for(var i=0; i<=n; i++){
this[i]=0
}
return this
}
/*creo l'oggetto che sostituisce parti di stringa con altre stringhe*/
function substitute(chars,subst,cond){
this.chars=chars
this.subst=subst
this.cond=cond
}
/*creo una matrice di oggetti che sostituiscono; errorchar[0] sostituisce
l'apostrofo col codice &rsquo; mentre gli altri due oggetti sostituiscono a
'<' e '>' i rispettivi codici ISO se si verificano certe condizioni, altrime
nti
lasciano il tag HTML, cosi' quando ri-metto a video il testo posso mantenere
la formattazione HTML*/
var errorChar=new myArray(3)
errorChar[0]= new substitute("'","&lsquo;",0)
errorChar[1]= new substitute("<","&lt;",1)
errorChar[2]= new substitute(">","&gt;",1)
/*nel caso COND sia = 1 ecco le parole da ricercare dopo il carattere
"speciale" e cosa scrivere al loro posto*/
var keyWords= new myArray(4)
keyWords[0]= new substitute("script","&lt;&nbsp;<b>gli script sono
vietati</b>&nbsp;",0)
keyWords[1]= new substitute("/script","&lt;&nbsp;<b>gli script sono
vietati</b>&nbsp;",0)
keyWords[2]= new substitute("test","ho trovato un tag di test aperto",0)
keyWords[3]= new substitute("/test","ho trovato un tag di test chiuso",0)
var ctrl
ctrl=""
/*ed ecco il parser creato dal sottoscritto, quando lo invochi gli devi
passare una stringa, o una variabile contenente una stringa, e il nome
esatto (maiuscole e minuscole incluse) del campo su cui operare, NB: nella
pagina deve essere presente un solo form, altrimenti dovrai modificare lo
script adeguatamente*/
function isApostrofo(stringa,campo){
var apostrofo="'"
var thisChar;
var count=0;
var preString
var postString
var command
command=""
postString=""
/*qui comincia il ciclo di lettura*/
 for(var i=0; i<stringa.length; i++){
/*stacca un pezzetto di stringa lungo un carattere*/
  thisChar=stringa.substring(i, i+1);
   for(var j=0; j<errorChar.length; j++){
/*confronta il pezzetto di stringa con gli altri caratteri inclusi ella matr
ice errorChar[]*/
    if (thisChar==errorChar[j].chars){
     if (errorChar[j].cond=="0"){
      thisChar=errorChar[j].subst
      }
     if (errorChar[j].cond=="1"){
/*se il carattere individuato ha cond=1 succede che...*/
      var cmd
      cmd=i+1
      while (cmd>=i){
/*finche' cmd e' > o = a 'i' mette nella variabile command il pezzo di strin
ga che va dal punto in cui ha trovato il carattere speciale, al punto cmd+1,
insomma aggiunge 1 carattere alla volta a "command" */
       command=command+stringa.substring(cmd,(cmd+1))
       cmd++
       if (cmd>stringa.length){
/*condizione di uscita dal ciclo while */
        cmd=-10
/*ctrl null significa che (lo vedi piu' avanti) il carattere speciale trovat
o e' lasciato aperto, va tradotto in ISO */
        ctrl="null"
        command=""
        }
        for(var cri=0; cri<keyWords.length; cri++){
/*adesso confronta il contenuto della variabile command con tutti gli elemen
ti della matrice keyWords[]*/
        if (command==keyWords[cri].chars){
/*se il confronto ha successo mette nella variabile thisChar il comando html
tradotto in ISO e con al posto del comando vero e proprio, la stringa conten
uta nella proprieta' subst dell'oggetto "sostituzione" definito molto piu' s
u*/
          thisChar="&lt;"+keyWords[cri].subst+"&gt;"
          ctrl="cmd"
          i=i+(command.length)+1
          cmd=-10
          command=""
         }
        }
       }
      }
     }
    }
/* postString e' la stringa che viene costruita un carattere alla volta da t
utti i caratteri che hanno "passato l'esame" e/o sono stati sostituiti, this
Char e' il pezzo di postString che viene aggiunto ad ogni "giro" del ciclo p
rincipale della funzione*/
   postString=postString+thisChar
  }
document.forms[0].elements[campo].value=postString
}
</script>
Questo script va inserito nella pagina col form, funziona LATO CLIENT e per
fargli riconoscere i caratteri indesiderati... basta che riempi in maniera
appropriata le varie matrici.
Ciao
Nettuno

 wrote in message
395B767B...@magisterludi.com...
