Tôi muốn viết biểu thức chính quy cho số điện thoại loại tiêu chuẩn của Hoa Kỳ hỗ trợ các định dạng sau:
###-###-####
(###) ###-####
### ### ####
###.###.####
Trong đó # có nghĩa là bất kỳ số nào. Cho đến nay tôi đã đưa ra các biểu thức sau đây
^[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}
tương ứng. Tôi không chắc chắn nếu cuối cùng là chính xác cho kiểm tra chấm. Tôi cũng muốn biết liệu có cách nào tôi có thể viết một biểu thức duy nhất thay vì 4 biểu thức khác nhau phục vụ cho các định dạng khác nhau mà tôi đã đề cập. Nếu vậy, tôi không chắc làm thế nào để tôi làm điều đó. Và cũng làm thế nào để tôi sửa đổi biểu thức / biểu thức để tôi cũng có thể bao gồm một điều kiện để hỗ trợ mã vùng làm thành phần tùy chọn. Cái gì đó như
+1 ### ### ####
trong đó +1 là mã vùng và nó là tùy chọn.