什么是全球最广泛接受的电话号码格式。什么是普遍认可的电话号码格式
我根据美国格式验证电话号码,那么非美国用户将很难进入他们的国家,如果我反之亦然,那么美国用户将会很难。
我正在寻找一种通用的电话号码格式,我将通过JS和PHP进行验证。
什么是全球最广泛接受的电话号码格式。什么是普遍认可的电话号码格式
我根据美国格式验证电话号码,那么非美国用户将很难进入他们的国家,如果我反之亦然,那么美国用户将会很难。
我正在寻找一种通用的电话号码格式,我将通过JS和PHP进行验证。
您需要根据用户的位置来区分用户。因此用户必须首先选择他的位置(例如美国),然后您需要根据美国格式验证他的电话号码。
以及世界其他地方呢,有没有哪个wiki可以找到各个国家的电话格式。 – 2011-03-21 13:09:33
恐怕你需要自己找到它,但嘿,我给你一个很棒的轮廓! :) – fabrik 2011-03-21 13:11:19
请不要验证任何超过有效字符(如所建议的,数字,破折号,加号和可能的空格/括号)。至少不要让你的验证成为强制性的:如果电话号码不匹配,只是警告用户。你无法匹配每种潜在的格式:这些格式不仅因国家而异,而且在某种程度上也受到电话公司和地区的影响(至少在数字方面)。
验证的目的应该是帮助最终用户输入正确的信息。它要求你比他们知道得更多,并准备在什么时候正确的转变时改变你的确认。
我还会添加一个'x'作为有效字符,以包含扩展名。例如:+1(777)444.5555 x12345。借调说,要完全验证电话号码是非常困难的。 – Zimzat 2011-03-21 13:24:41
验证也必须针对预期用途。电话号码是否由手动拨号的人使用?或者作为替代主键?或(半)自动拨号,例如在电话簿里? 'x'在最后一种情况下不好,但不是前两种。第一个也是最后一个空间很好,但不是中间的情况。依此类推...... – 2011-03-21 13:39:43
您唯一可以验证的是它包含数字。数量的数量因国而异。
我将仅验证数字(最少6位数字)。它会照顾美国和非美国吗? – 2011-03-21 15:40:28
没有足够广泛的地方,它可以被看作是如果它不适合它的电话号码。格式'+' CountryCode ' ' (AreaCode ' ')? SubscriberNumber
由国际电联标准化。 CountryCode
,AreaCode
和SubscriberNumber
是数字序列。
然后,在德国,AreaCode
通常以(0)
开头(表示如果您不拨打CountryCode
,则必须拨打该号码)。人们也倾向于将SubscriberNumber
的数字进行分组,或者将各种标点符号放在其中(无论用于什么目的)。
总而言之,验证电话号码是一件麻烦事。要么做得非常严格,惹恼你的用户,要么做最低限度的(至少包含一位数字)。
如果你看看rfc3966它解释什么是有效的电话号码(具体为section 5.1)。
然而,据说你不应该担心用户输入电话号码的方式,在提交时删除所有格式化,验证号码,然后将其存储而不用格式化。
处理从数据库中拉出数字以显示数字时,重新格式化数字。
是的,+ NNNN ...是通用格式,应该被任何电话号码输入系统接受。不幸的是,太多糟糕的网络开发人员忘记了电话号码应该以“+”开头。 – sorin 2016-02-18 15:59:44
有任何维基哪里可以找到各个国家
电话格式,您可以尝试: http://en.wikipedia.org/wiki/Category:Telephone_numbers_by_country
我想你可以做的唯一的事情是确保它仅包含'+ ''''0-9'和'space' – JohnP 2011-03-21 13:04:51
@JohnP:另外,“x”表示扩展名。例如。 12345x789是电话号码。 12345,extension 678. – 2011-03-21 13:18:49
http://stackoverflow.com/questions/3805349/normalizing-validation-for-international-data-sets-in-a-database – Incognito 2011-03-21 13:22:46