Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374

    Funzione di controllo stringa

    Ho questa funzione:
    codice:
    Function StringToArray(value)
    Dim i,ch,ar(),nOfElm
    nOfElm = Len(value)
    if nOfElm>0 then
    Redim ar(nOfElm)
    For i=1 to nOfElm
    ar(i) = mid(value,i,1)
    Next
    StringToArray = ar
    else
    StringToArray = array("")
    end if
    End Function
    
    lettere = StringToArray("qazwsxedcrfvtgbyhnujmik,ol.pò-;:_é*°§èàù#][€\|!£$%&()=?^")
    
    if tel <> "" then
    for i=0 to ubound(lettere) -1
    if tel = lettere(i) then
    response.redirect("errore.asp?id=27")
    end if
    next
    end if
    
    if fax <> "" then
    for i=0 to ubound(lettere) -1
    if fax = lettere(i) then
    response.redirect("errore.asp?id=28")
    end if
    next
    end if
    che controlla che nel modulo i numeri di telefono e fax inseriti non contengano caratteri estranei, e nel caso ve ne fossero, rimanda ad una pagina di errore....però il form viene convalidato lo stesso!! Cosa sbaglio?

    P.S.: non posso usare isNumeric perchè nei numeri di telefono possono essere compresi + e /

  2. #2
    perche' tu testi l'uguaglianza tra l'intera stringa e il singolo carattere (cosa che sara' *sempre* non vera). usa INSTR

  3. #3
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Cioè?

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao a tutti,

    per questo tipo di controllo stringa l'ideale secondo me è usare le regular expression

    ad esempio se vuoi mandare alla pagina d'errore nel caso siano inseriti caratteri diversi da numeri, il carattere +, il carattere /, il carattere \ e lo spazio
    codice:
    Set RE = CreateObject("VBScript.RegExp")
    objRE.Pattern="[^0-9\+\/\\ ]"
    RE.Global=true
    
    if objRE.Test(tel) then response.write("errore.asp?id=27")

  5. #5
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    WOW questa non la sapevo!

  6. #6
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Ho sritto così:
    codice:
    Set objRE = CreateObject("VBScript.RegExp")
    objRE.Pattern="[^0-9\+\/\\ ]"
    objRE.Global=true
    
    if objRE.Test(tel) then
    response.write("errore.asp?id=27")
    end if
    
    if objRE.Test(fax) then
    response.write("errore.asp?id=28")
    end if
    Però il form viene inviato lo stesso!

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    la regular expression cerca un carattere che sia diverso da qualunque numero, dal più, dalle due barre e dallo spazio. Se lo trova il metodo test restituisce true...

    heheheh mi sono accorto che ho scritto .write invece di .redirect






    p.s.
    per risparmiare righe puoi scrivere
    codice:
    if objRE.Test(tel) then response.write("errore.asp?id=27")
    if objRE.Test(fax) then response.write("errore.asp?id=28")
    se hai una sola istruzione dopo il then puoi omettere l'end if

  8. #8
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Non me n'ero accorto...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.