Vorrei verificare se un numero di telefono contiene esattamente 3 cifre - punto - 3 cifre - punto - 3 cifre. (per esempio. 123.456.789
)
Finora ho questo, ma non funziona:
^(d{3}){2}d{4}$
risposte:
1 per risposta № 1Si noti che una parentesi sfuggita )
perde il suo significato speciale in regex e il modello diventa non valido poiché il gruppo di acquisizione non è chiuso.
Se si desidera abbinare un punto a una regex, è necessario includerlo nel proprio modello e se si dice che 3 cifre devono essere alla fine, non ha senso dichiarare 4 cifre con d{4}
.
^(d{3}.){2}d{3}$
^ ^
o se espandiamo il primo gruppo:
^d{3}.d{3}.d{3}$
Quindi tutta la correzione consiste nell'aggiungere un punto dopo la seconda barra rovesciata e regolare il quantificatore di limitazione finale.
Si noti che per motivi principalmente di "stilistica" (poiché il guadagno di efficienza è insignificante) utilizzare un gruppo non di acquisizione con la prima variante regex:
^(?:d{3}.){2}d{3}$