2011-10-13 72 views
0

我需要检查格式电话号码。Javascript中的电话号码格式

+33xxxxxxxxx

0033xxxxxxxxx

编辑0xxxxxxxxx

我如何可以做到这一点(出)正则表达式?

+2

可能是最好的库处理电话号码:http:///code.google.com/p/libphonenumber/ –

+1

@JamesAllardice - 这应该是一个答案,而不是评论。 – 2011-10-13 15:44:15

+0

我认为不应该。这不是一个完整的答案,它只是一个有用的参考。 –

回答

1
if (/^(?:(?:\+|00)33|0)\d{9}$/.test(subject)) { 
    // Successful match 
} else { 
    // Match attempt failed 
} 
+0

哦!太好了,但是如果我需要用'261'或其他值更改'33'?代码是什么? – Steffi

+0

如果您仍然期望国家代码后有9位数字,那么只需将'261'替换为'33'。如果你想同时允许,使用'(?:216 | 33)'而不是'33'。 –

+0

是的,但如果它是一个随机值? – Steffi

0

这是验证你的例子正则表达式:

/(\+|(00)|0)[0-9]{11}/.test(stringToTest) 
+0

但它也验证12345678901 。 –

1

试试这个正则表达式:/^((\+|00)\d{2})?\d{9}$/

这符合你的每一个给定的情况下(+YYXXXXXXXXX00YYXXXXXXXXXXXXXXXXXX)。

编辑:为了配合你的编辑:/^((\+|00)\d{2}|0)\d{9}$/

1

PhoneFormat.com有一个JavaScript库,有一些格式化功能,您可以轻松将其放入您的项目中。它会采取任何你扔在它的数字,并尝试将其转换为e164(+ 33252525252),并格式化它(+33 2 52 52 52 52)