[regex] Validare numero di telefono Clicca QUI per vedere il messaggio nel forum |
0m4r |
Ciao a tutti,
qualcuno mi sa aiutare? Sto cercando di scrivere una regex che validi una stringa del tipo +39123456789 (insomma un più seguito da una serie di numeri)...
io ho provato con una cosa tipo
code:
\+[\d]*
ma questo mi valida anche stringhe del tipo +abcde12345 che non è quello che voglio... |
ripe |
una roba del genere...?
\+[0-9]* |
0m4r |
ho provato anche in quel modo, ma ho lo stesso risultato della regex che ho postato io... cioè mi prende come valide stringhe del tipo +123ssd15s4ds54, cioè composte sia da numeri che da lettere, ma a me servono solo numeri...
ad ogni modo grazie lo stesso |
DeepBlue |
Tu a priori sai di quante cifre è composto il numero no?
Quindi suggerirei:
^[\+][0-9]{min,max}
dove min è il numero minimo di numero dopo il + e max e quello massimo.
L'espressione filta la seguente lista correttamente:
+392384747
+sadas4949
+033ssda
2344
asdf
+3445ass345
+as23445
Attenzione che a seconda del linguaggio usato, potrebbe essere necessario escapare le graffe (come ad esempio con grep su linux).
|
0m4r |
grazie DeepBlue,
ma forse non mi sono spiegato bene io, io voglio che sia dato esito positivo SOLO se la stringa è composta da un "+" e da una serie di numeri (che come giustamente hai detto te non so quanti saranno), quindi +abc123 e 123456 NON devono essere corrette, mentre +123456 E' CORRETTA
edit:
code: ^[\+][0-9]*$
questa funziona (quasi) solo che considera corette anche stringe composte solo dal "+"... consigli? |
DeepBlue |
^[\+]{1}[0-9]*$
strano comunque, a me funziona anche senza {1}
Ma con cosa le crei? Php? perl? o che? |
giulio |
Originally posted by 0m4r
edit:
code: ^[\+][0-9]*$
questa funziona (quasi) solo che considera corette anche stringe composte solo dal "+"... consigli? [/B]
Prova:
"^[\+][0-9]\+$"
l'asterisco matcha 0 o piu' occorrenze del carattere precedente, mentre il "+" matcha una o piu' occorrenze. |
0m4r |
sto creando delle form con cocoon... anche io avevo pensato all'{1}, ora lo testo e poi ti faccio sapere
ri-ri-edit:
FUNZIONA
almeno sembra, perchè io non ho messo lo slash davanti al + prima del $, se lo mettessi intenderei il carattere "+" o sbaglio?!
code: ^[\+][0-9]+$
grazie Giulio! |
|
|
|