Java中电话号码验证的典型正则表达式

时间:2011-10-20 21:18:48

标签: regex phone-number

我正在努力为我的应用程序中的电话号码验证获得正确的正则表达式。我有一个只接受数字和一些特殊符号的正则表达式,如()-等,但问题是它只接受符号。例如,它会接受类似()()()()的内容。我想修改正则表达式或获得一个接受这些符号的全新正则表达式,但它应该在每个符号之前和之后至少有一个数字。

我的要求是:

  1. 只有数字
  2. 带有特殊符号组合的数字
  3. 每个符号后面应加一个数字(前后),但白色空格可以
  4. 最大长度应为15

1 个答案:

答案 0 :(得分:1)

根据我的经验,括号仅出现在第一组数字周围,并且组中的数字从不少于3位。这个正则表达式可以做到这一点,并且可以防止多个连续的分隔符,除了paren“(123)456-7890”之后的空格。我还添加了对句子作为分隔符的支持。它允许1,2或3组数字,并尝试强制执行7-15位数的整体范围,但它在许可方面错误。

^\\s*(\\d{7,15})||(\\d{3,12}[\\-.]?\\s?\\d{3,12}[\\-.\\s]?)||([(]?\\d{3,9}[)\\-.]?\\s?\\d{3,9}[\\-.\\s]?\\d{3,9})\\s*

在我的环境中,我必须逃避反斜杠 - 您可能没有这样做,因此您可能需要更换\。连字符必须被转义,因为在此上下文中它代表一个范围。