espressione regolare non funzionante

salve

ho un piccolo problema che mi assilla su una espressione regolare.

avevo creato una cosa del tipo:

"/^[a-zA-Z' ]+$/"

con l'intento di far inserire un utente una stringa con quei caratteri, compresi spazio e un solo apice (') fra due lettere almeno.

funziona tutto tranne quando si inserisce ', che d errore.

ho poi pensato che ' andrebbe fra due lettere almeno, allora ho ipotizzato:

"/^[a-zA-Z]+[']? [a-zA-Z]+$/"

e varie eventuali: il sistema funziona esattamente come gi descritto.

come risolvo la mia espressione regolare?

grazie

inviato 8 anni fa
larchitetto
X 0 X

Se vuoi che l'apice sia obbligatorio non devi mettere come opzione '?' ma '+' .

Perch '?' indica zero o una occorenza invece '+' indica una o pi occorenze. Se invece vuoi che il carattero ' appare una sola volta metti {1} al posto del +

Prova cos

<? 
if(!preg_match("/^[a-zA-Z]+[']+[a-zA-Z]+$/",$stringa))
{
echo 'formato non corretto';
}else
echo 'formato corretto';


?>

salve

ho un piccolo problema che mi assilla su una espressione regolare.

avevo creato una cosa del tipo:

"/^[a-zA-Z' ]+$/"

con l'intento di far inserire un utente una stringa con quei caratteri, compresi spazio e un solo apice (') fra due lettere almeno.

funziona tutto tranne quando si inserisce ', che d errore.

ho poi pensato che ' andrebbe fra due lettere almeno, allora ho ipotizzato:

"/^[a-zA-Z]+[']? [a-zA-Z]+$/"

e varie eventuali: il sistema funziona esattamente come gi descritto.

come risolvo la mia espressione regolare?

grazie

risposto 8 anni fa
Toto007
modificato 8 anni fa
X 0 X

in effetti la regola che volevo impostare era la seguente:

se viene digitato un apice, dev'esser in mezzo a due lettere almeno; accettati zero o un solo apice.

grazie

risposto 8 anni fa
larchitetto
X 0 X

ho oscoperto l'errore, e non aveva niente a che fare con l'exp regolare...

grazie cmq delle dritte :D

risposto 8 anni fa
larchitetto
modificato 8 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda