Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di checker
    Registrato dal
    Nov 2003
    Messaggi
    129

    Espressioni regolari con eccezioni

    Eliminare i caratteri speciali con eccezione degli spazi vuoti?

    $testo = preg_replace("/[^a-zA-Z0-9]/", "", $testo); // questo elimina tutto...

  2. #2
    Utente di HTML.it L'avatar di checker
    Registrato dal
    Nov 2003
    Messaggi
    129
    up

  3. #3
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105

    Re: Espressioni regolari con eccezioni

    Originariamente inviato da checker
    Eliminare i caratteri speciali con eccezione degli spazi vuoti?

    $testo = preg_replace("/[^a-zA-Z0-9]/", "", $testo); // questo elimina tutto...
    Vorresti eliminare quali caratteri esattamente?
    Inoltre non credi che sarebbe meglio usare due variabili diverse? Una per la stringa da trasformare e una per la stringa trasformata...

    Codice PHP:
    $testo="abcdeecc.";
    $testo_nuovo=preg_replace("/[^a-zA-Z0-9]/"""$testo); 

  4. #4
    Utente di HTML.it L'avatar di checker
    Registrato dal
    Nov 2003
    Messaggi
    129
    si mi sembra un ottima idea...

    vorrei eliminare tutti i caratteri speciali tipo ":}`#~+ ecc. ma lasciare le virgole

  5. #5
    Utente di HTML.it L'avatar di checker
    Registrato dal
    Nov 2003
    Messaggi
    129
    No lasciare le virgole, scusa volovo dire gli spazi vuoti

  6. #6
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105
    Originariamente inviato da checker
    si mi sembra un ottima idea...

    vorrei eliminare tutti i caratteri speciali tipo ":}`#~+ ecc. ma lasciare le virgole
    Prova così

    Codice PHP:
    $testo_nuovo=preg_replace("/[^\\w,]/"""$testo); 
    Cancelli tutto ciò che è diverso da un numero o una lettera (il \w rappresenta tutte le lettere e tutte le cifre) o una virgola.
    Non sono sicuro se la virgola necessiti o meno del backslash.

    E poi prova a guardare questo articolo.

  7. #7
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105
    Originariamente inviato da checker
    No lasciare le virgole, scusa volovo dire gli spazi vuoti
    Credo che basti lasciare uno spazio dopo \w.

    $nuovo_testo=preg_replace("/[^\w ]/", "", $testo);

  8. #8
    Utente di HTML.it L'avatar di checker
    Registrato dal
    Nov 2003
    Messaggi
    129
    Ti ringrazio infinitamente, così funziona benissimo:

    $nuovo_testo=preg_replace("/[^\w,\s,]/", "", $testo);

  9. #9
    Utente di HTML.it L'avatar di tziggie
    Registrato dal
    Mar 2007
    Messaggi
    105
    Però in questo modo non riconosce i caratteri accentati àéèìòù nonché lettere particolari come çñ... magari queste ultime sono meno utili.

    Non so se ci sia un modo per indicare tutti i caratteri particolari analogo a \w.
    Se qualcuno lo conosce, sarebbe così gentile da indicarmelo .

    Non so se può bastare aggiungere semplicemente àéèìòù all'espressione "/[^\w\s,àéèìòù]/"

  10. #10
    Utente di HTML.it L'avatar di checker
    Registrato dal
    Nov 2003
    Messaggi
    129
    Caspita hai ragione! come hai proposto tu "/[^\w\s,àéèìòù]/" funzione ma è difficile includere tutte i caratteri accentati...

    Inoltre mi ora mi lascia le VIRGOLE!!!

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.