Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    43

    Aiuto per espressione regolare / replace

    Ciao a tutti!
    Quando c'è da fare qualcosa con le espressioni regolari, divento matto...

    Dunque, sto implementando un codice di "protezione" per evitare che in un forum (da me sviuppato) gli utenti postino titoli di thread e gli stessi testi tutti IN MAIUSCOLO.

    La prima parte della funzione è ok, anche se ovviamente come succede sempre in questi casi c'è il trucco per eluderla.

    In pratica creo una espressione regolare ed imposto il suo pattern di ricerca a "[A-Z]" ... se trova almeno un carattere maiuscolo procede a scoprire se ne esiste almeno uno minuscolo, con pattern "[a-z]" ... se non ne trova neanche uno significa che il post contiene solo maiuscole e fa un bel LCASE(testo).

    Il mio problema nasce dal fatto che nel mio forum gli utenti possono (ovviamente) anche quotare altri messaggi, con una sintassi di questo tipo:

    codice:
    
    
    Quote Originariamente inviata da mario 26/12/2006 19.52.13
    testo quotato testo quotato testo quotato testo quotato
    TESTO RISPOSTA TESTO RISPOSTA TESTO RISPOSTA TESTO RISPOSTA
    Essendo tutto il testo quotato incluso nel testo della risposta, in questo caso il mio "Lcasizzatore" non funziona, perchè individua la presenza di caratteri minuscoli... nel testo quotato, anche se il testo della risposta è tutta in maiuscolo.

    Potreste darmi una dritta per trovare una soluzione?

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    può essere una soluzione prendere tutto il testo che viene da dopo la stringa "[/quote]", e controllarlo(?)

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    43
    Sì, potrebbe, ma purtroppo non è così semplice: alcuni utenti quotano più di un messaggio (quoto il primo, rispondo, quoto il secondo, rispondo...) e in questo caso non funzionerebbe. Ovviamente questo risolve in ogni caso la maggior parte dei casi, ma non è allo stato dell'arte.

    Nel frattempo però ti ringrazio perchè mi hai suggerito una soluzione parziale ma molto semplice

  4. #4
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    beh, invece di usare l'Instr usi l'instrRev così avrai sempre localizzato l'ultimo /quote che corrisponderà alla chiusura dell'ultimo messaggio quotato.

    codice:
    txt=InstrRev(testo, "[/quote]")
    txt=Mid(testo, txt)
    For i=1 to Len(txt)
       if IsUpper(Mid(txt,i,1))
          Txt=UpperCase(txt)
          Exit For
       End if
    Next

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 © 2026 vBulletin Solutions, Inc. All rights reserved.