Le espressioni regolari: queste sconosciute!

angeloulivieri

Utente Attivo
8 Set 2009
71
0
0
Qualcuno sa dirmi perché questo codice php presa in input da un form una stringa

$word=$_POST["word"];
if( preg_match("/[\^\*@£€\',;\.!\+\-]/",$word) ){
echo "yes";
}else{
echo "no";
}

...accetta i caratteri: °§
Sto cercando di creare un sistema che mi accetti solo lettere e numeri.. più i caratteri accentati (àèòìù)
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Per ottenere quello che vuoi basta utilizzare le seguente regola

PHP:
$rule = "/^[a-zA-Z0-9àèòìù]+$/";
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
39
Sanremo
Questa espressione regolare accetta una qualunque stringa che contenga almeno uno dei caratteri inclusi nella character class. Quindi se la stringa contiene almeno uno di questi, si ha un match, indipendentemente dagli altri caratteri presenti (anche ° e §).

Mi sembri molto lontano da quello che vuoi ottenere....

Per ottenere quello che vuoi basta utilizzare le seguente regola

PHP:
$rule = "/^[a-zA-Z0-9àèòìù]+$/";
Sottoscrivo in pieno
 
Ultima modifica:

angeloulivieri

Utente Attivo
8 Set 2009
71
0
0
GRANDE! Devo solo verificare che funzioni usando charset= UTF-8...
E se voglio aggiungere qualche carattere tra i permessi? che devo aggiungere alla tua? (ad esempio la @ e l'€)
$rule = "/^[a-zA-Z0-9àèòìùé]+$/";
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Basta aggiungere i caratteri consentiti alla lista dei caratteri che forma la regola. Ovviamente questa è una regola moto banale; con le espressioni regolari si possono fare i più svariati controlli. Sono uno strumento molto potente.
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Ovviamente l'utilizzo che se ne fa in programmazione consiste quasi esclusivamente nel controllo e/o sostituzione su stringhe.
Ma nel campo teorico le espressioni regolari sono in grado di caratterizzare gli insiemi dei linguaggi regolari, generabili dalle grammatiche regolari di tipo 3 (grammatiche di Chomsky). Una grammatica regolare è riconoscibile da un automa a stati finiti (ASF) che è un caso particolare di Macchina di Turing.
Per questo motivo un automa a stati finiti può essere utilizzato come riconoscitore di linguaggi e può essere rappresentato tramite espressioni regolari.
Oltre a questo, tramite le espressioni regolari è possibile, ad esempio, anche rappresentare tutti i possibili cammini su un grafo. I grafi sono strutture matematiche discrete che si trovano alla base di vari capi quali la matematica, l'informatica ecc.
 

angeloulivieri

Utente Attivo
8 Set 2009
71
0
0
sarebbe un bel casino di stringa per rappresentare tutti i cammini di un grafo mi sa! :D
grazie per le info comunque.. ora provo su server e ti faccio sapere se tutto funziona a perfezione.
In locale è OK!