我想为支持以下格式的标准美国型电话号码编写正则表达式:
###-###-####
(###) ###-####
### ### ####
###.###.####
Run Code Online (Sandbox Code Playgroud)
其中#表示任何数字.到目前为止,我想出了以下表达式
^[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}
Run Code Online (Sandbox Code Playgroud)
分别.我不太确定最后一个是否适用于虚线检查.我也想知道是否有任何方法可以编写单个表达式而不是4个不同的表达式,以满足我提到的不同格式.如果是这样,我不知道该怎么做.还有我如何修改表达式/表达式,以便我还可以包含一个条件来支持区域代码作为可选组件.就像是
+1 ### ### ####
Run Code Online (Sandbox Code Playgroud)
其中+1是区号,它是可选的.