Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Devo validare e convertire una stringa

    Ciao ragazzi
    ho un problemino

    al mio script arriva una stringa che devo valutare.

    1) deve contenere solo caratteri alfanumerici
    2) se ci sono spazi li devo sostituire con un -

    Come faccio?
    Ho provato a guardare le espressioni regolari ma non ne sono venuto ancora a capo.

  2. #2
    dimenticavo...

    se mi arriva qualcosa tipo

    aeiou95@ 'ciao

    devo arrivare a questa stringa

    aeiou95-ciao

    quindi i caratteri ' e @ non ci devono più essere e ci deve essere il - al posto dello spazio.

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    prova così. non è il massimo ma mi sembra che funzioni.

    $stringa = "aeiou95@ 'ciao!";
    $stringa = preg_replace('/[^a-zA-Z0-9\s]/','',$stringa); // se sono ammesse maiuscole e minuscole
    $stringa = preg_replace('/\s+/','-',$stringa);
    echo $stringa;

  4. #4
    Mi piace!
    aggiudicato
    grazie mille

    io avevo risolto ciclandomi la stringa e controllando con ereg

    ma questo è più elegante!

    :rollo:

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da Maurizio1980
    ma questo è più elegante!

    :rollo:
    Se lo dici tu.
    Magari si può fare anche in un passaggio ma non saprei come.

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Sto cercando di capirci qualcosa di queste benedette regexp.
    Volevo ridurre il tutto a una riga di codice.

    Supponendo di avere una stringa del genere
    $stringa = "aeiOu95@@@! 'ciao! a% tutti";
    (N.B. ci sono 3 spazi prima di 'ciao e 2 prima di a% nella mia stringa)

    ciò che vorrei ottenere è
    aeiOu95-ciao-a-tutti

    mentre ciò che ottengo è
    aeiOu95---ciao--a-tutti

    uso questa espressione
    echo preg_replace( "/(?i)[^a-z0-9\-{1}]/", "", str_replace(' ', '-', $stringa));
    ne ho provate anche altre ma senza successo.

    secondo la mia testa dovrebbe prima sostituire tutti gli spazi con i trattini. A questo punto dovrebbe eliminare dalla stringa tutto ciò che non è alfanumerico e le occorrenze multiple del trattino ma ovviamente non è così. Qualcuno che mi aiuta a capire dove sbaglio?
    Grazie.

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