Voglio scrivere un'espressione regolare per un numero di telefono di tipo statunitense standard che supporti i seguenti formati:
###-###-####
(###) ###-####
### ### ####
###.###.####
dove # significa qualsiasi numero. Finora sono venuto fuori con le seguenti espressioni
^[1-9]\d{2}-\d{3}-\d{4}
^\(\d{3}\)\s\d{3}-\d{4}
^[1-9]\d{2}\s\d{3}\s\d{4}
^[1-9]\d{2}\.\d{3}\.\d{4}
rispettivamente. Non sono abbastanza sicuro che l'ultimo sia corretto per il segno di spunta. Voglio anche sapere se c'è un modo in cui potrei scrivere una singola espressione invece delle 4 diverse che si adattano ai diversi formati che ho citato. Se è così, non sono sicuro di come farlo. E anche come modifico l'espressione / espressioni in modo da poter includere anche una condizione per supportare il prefisso come componente opzionale. Qualcosa di simile a
+1 ### ### ####
dove +1 è il prefisso ed è facoltativo.
