我正在尝试学习正则表达式来验证特定输入。我试图验证的输入包括以下模式:
一个正则表达式,用于匹配可能包含.
或-
或空格的以下电话号码模式。我的数据如下:
num: 1234567890 name: jack
num: 123-456-7890 name: john
num: 123.456.7890 name: jeff
num: 123 456 7890 name: josh
num: (123) 456-7890 name: jacob
一个正则表达式,用于匹配社会安全号码,该号码可能包含第3和第5位后面的破折号或空格。
ss: 111111111 name: jack
ss: 111-11-1111 name: john
ss: 111 11 1111 name: jeff
我已尝试\d{3}-?.?\d{3}-?.?\d{4}
了解电话号码。
并尝试\d{3}-?\d{2}-?\d{4}
获取社会安全号码。
答案 0 :(得分:2)
要匹配您可以使用的电话号码部分..
\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4}
正则表达式:
\( # match '('
? # match between zero and one time
\d{3} # match a digit (0-9) (3 times)
\) # match ')'
? # match between zero and one time
[-. ] # match for '-', '.', or ' '
? # match between zero and one time
\d{3} # match a digit (0-9) (3 times)
[-. ] # match for '-', '.', ' '
? # match between zero and one time
\d{4} # match a digit (0-9) (4 times)
对于社会安全号码,类似......
\d{3}[- ]?\d{2}[- ]?\d{4}
答案 1 :(得分:1)
有关电话号码,请尝试以下操作:
\(?\d{3}\)?[ .-]?\d{3}[ .-]?\d{4}
[ .-]?
基本上是空格,连字符或点的“一个或零”。
对于ssn:
\d{3}[ -]?\d{2}[ -]?\d{4}
[ -]?
基本上是空格或连字符的“一个或零”。
但老实说,而不是关心格式(这可能会让用户和你感到沮丧 - 试图考虑各种格式),在大多数情况下,我宁愿确保他们拥有适量的数字。您可以删除任何非数字字符,然后检查长度。
如何完成这取决于所使用的语言。在javascript中,它看起来很简单:
if(phoneNumber.replace(/\D/g, "").length() === 10){ //valid }
然后您可以根据需要格式化或使用它。以下是一个javascript示例:fiddle ...使用特定格式的示例:fiddle
答案 2 :(得分:0)