Saya ingin menulis ekspresi reguler untuk nomor telepon jenis AS standar yang mendukung format berikut:
###-###-####
(###) ###-####
### ### ####
###.###.####
dimana # berarti angka apapun. Sejauh ini saya muncul dengan ekspresi berikut
^[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}
masing-masing. Saya tidak begitu yakin apakah yang terakhir benar untuk cek bertitik. Saya juga ingin tahu apakah ada cara untuk menulis satu ekspresi alih-alih 4 ekspresi berbeda yang memenuhi format berbeda yang saya sebutkan. Jika demikian, saya tidak yakin bagaimana cara melakukannya. Dan juga bagaimana cara mengubah ekspresi / ekspresi sehingga saya juga bisa menyertakan kondisi untuk mendukung kode area sebagai komponen opsional. Sesuatu seperti
+1 ### ### ####
dengan +1 adalah kode area dan opsional.