正则表达式匹配电话号码?

siv*_*udh 2 regex phone-number

我想匹配一个可以包含字母和可选连字符的电话号码:

  • 这是有效的: 333-WELL
  • 这也是有效的: 4URGENT

换句话说,最多只能有一个连字符,但如果没有连字符,则最多可以有7个0-9或AZ字符.

我不知道如何做和正则表达式中的"if statement".这甚至可能吗?

sam*_*amg 5

我认为应该这样做:

/^[a-zA-Z0-9]{3}-?[a-zA-Z0-9]{4}$/
Run Code Online (Sandbox Code Playgroud)

它匹配3个字母或数字,后跟可选的连字符,后跟4个字母或数字.这个工作在红宝石.根据您使用的正则表达式引擎,您可能需要稍微改变它.

  • @ ShaChris23因为121333333也在开头匹配它.对于真正的全长匹配,它是`/ ^ [a-zA-Z0-9] {3} - ?[a-zA-Z0-9] {4} $ /`(使用`^`和` $`符号表示字符串的开头和字符串的结尾(分别) (2认同)