电话的正则表达式验证不会接受nos,破折号和+

时间:2012-11-01 17:49:36

标签: regex

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

请回答。

2 个答案:

答案 0 :(得分:1)

您的问题由此解答:

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

但是,我认为你应该使用更具说明性的东西。也许要求至少说8个数字,连字符不能是第一个或最后一个:

^(?=(.*\d){8,13})\+?(?!-)[\d-]*(?<!-)$

答案 1 :(得分:-1)

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

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