0

我只需要一个正则表达式来验证在文本框中输入的电话号码。该文本框只能允许数字、破折号 (-) 和加号 (+),并且最多应包含 15 个字符,最少应包含 11 个字符。(+) 可以(可选)仅出现在电话号码的开头。

请回答。

4

2 回答 2

1

你的问题是这样回答的:

\+?[\d-]{1,13}
  • \+?表示“一个 '+' 字符中的零”
  • [\d-]{1,13}表示“从 1 到 13 位数字或连字符”

但是,我认为您应该使用更具规范性的东西。也许要求至少有 8 位数字,并且连字符不能是第一个或最后一个:

^(?=(.*\d){8,13})\+?(?!-)[\d-]*(?<!-)$
于 2012-11-01T18:03:53.990 回答
-1

忽略 13 个字符的限制,您可以使用此正则表达式:

^((\+[0-9]([0-9]{2}|[1-9])?-)?([1-9][0-9]{2}-)?[1-9][0-9]{2}-[0-9]{4})?$

于 2012-11-01T18:08:56.200 回答