【问题标题】:whats the universally recognised telephone# format什么是普遍认可的电话#格式
【发布时间】:2011-07-19 16:09:14
【问题描述】:

全球最广泛接受的电话号码格式是什么。

如果我根据美国格式验证电话号码,那么非美国用户将很难输入他们的电话号码,如果我反之亦然,那么美国用户将很难。

我正在寻找一种普遍认可的电话号码格式,我将通过 JS 和 PHP 进行验证。

【问题讨论】:

  • 我想你唯一能做的就是确保它只包含+-0-9和space
  • @JohnP:另外,“x”表示扩展名。例如。 12345x789 是电话号码。 12345,分机 678。
  • 虚荣号码又名电话词怎么样,例如1-555-FOOBARBAZ ?

标签: javascript php phone-number


【解决方案1】:

您需要根据用户的位置来区分用户。因此,用户必须先选择他的位置(例如美国),然后您需要根据美国格式验证他的电话号码。

【讨论】:

  • 那么世界其他地方呢,有没有维基可以找到各个国家的电话格式。
  • 恐怕你需要自己找到它,但是嘿,我给你一个很棒的大纲! :)
【解决方案2】:

请不要验证有效字符以外的任何内容(如建议的那样,数字、破折号、加号和可能的空格/括号)。至少不要强制验证:如果电话号码不匹配,只需警告用户。您将无法匹配每一种可能的格式:这些格式不仅因国家/地区而异,而且在某种程度上因电话公司和地区而异(至少在位数方面)。

验证的目的应该是帮助最终用户输入正确的信息。它要求您比他们知道的更多,并准备好在正确发生变化时更改您的验证。

【讨论】:

  • 我还将添加一个“x”作为有效字符,以包含扩展名。例如:+1 (777) 444.5555 x12345。借调说要完全验证电话号码是非常困难的。
  • 验证也必须针对预期用途。电话号码是人工拨打的人使用的吗?还是作为替代主键?或用于(半)自动拨号,例如在电话簿里? 'x' 在最后一种情况下不好,但不是前两种。空格在第一个和最后一个都很好,但不是中间情况。等等……
【解决方案3】:

您唯一可以验证的是它包含数字。数字的数量因国家/地区而异。

查看Local conventions for writing telephone numbers 维基百科文章。

【讨论】:

  • 我将只验证数字(至少 6 位数字)。它会照顾美国和非美国吗?
【解决方案4】:

没有一个足够广泛,以至于它可以被视为如果它不适合它不是电话号码。 '+' CountryCode ' ' (AreaCode ' ')? SubscriberNumber 的格式由 ITU 标准化。 CountryCode、AreaCode 和 SubscriberNumber 是数字序列。

再一次,在德国,AreaCode 通常以(0) 开头(表示如果您不拨打CountryCode,则必须拨打它)。人们还倾向于将SubscriberNumber 的数字分组或在其中放入各种标点符号(无论出于何种目的)。

总而言之,验证电话号码很麻烦。要么做的非常严格,惹恼你的用户,要么做最少的事(至少包含一位数字)。

【讨论】:

    【解决方案5】:

    如果您查看rfc3966,它会解释什么是有效电话号码(特别是section 5.1)。

    不过话虽如此,您不必担心用户如何输入电话号码、在提交时去掉所有格式、验证号码并在不进行格式的情况下存储它。

    当您从数据库中提取数字以显示它时,处理重新格式化该数字。

    【讨论】:

    • 是的,+NNNN... 是通用格式,应该被任何输入系统的电话号码所接受。遗憾的是,太多糟糕的 Web 开发人员忘记了电话号码应该以“+”开头。
    【解决方案6】:

    是否有任何 wiki 可以找到各个国家/地区的电话格式

    您可以尝试: http://en.wikipedia.org/wiki/Category:Telephone_numbers_by_country

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-03
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      相关资源
      最近更新 更多