Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Community > Tech
 
[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!

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate