【问题标题】:International phone number format in the input输入中的国际电话号码格式
【发布时间】:2012-08-22 23:19:25
【问题描述】:

我有这样一个输入:

<textarea name='phone_number' id='phone_number' cols='80' rows='1'><? echo $_POST['phone_number']; ?></textarea>

好吧,我在 PHP 中创建了一个函数来验证电话号码(检查它是否为空且其中没有字符,只有 + 和数字)

现在,我想用一些 JQuery/JavaScript 的东西在那个输入中内联格式化它,但我正在考虑的格式是 International strong> 如果我有的话:

0016073222153 变为 +1 607-322-2153

0049329351525 变成+49 329-351-525

任何想法我该怎么做?欣赏它!谢谢!

【问题讨论】:

  • 每个国家/地区都有自己的格式规则,这并不简单。
  • 那么,我怎样才能像一般规则一样做到这一点?我需要某种格式:(
  • 您需要详细说明您要做什么。这两个例子还不够。
  • @Jimmy,该评论没有添加任何新信息。

标签: php javascript jquery jquery-ui


【解决方案1】:

我做了很多假设,但它适合你的用例,可能会让你开始

var num1 = "0016073222153",
    num2 = "0049329351525";

$(document).ready(function() {

    $('body').append(
        phoneFormat(num1) + "<br />" + 
        phoneFormat(num2)
    );
});

function phoneFormat(num) {

    num = num.replace(/^0+/, '');
    num = num.replace(/[^0-9]/, '');

    if (num.length == 11) {

        if (num.substr(0, 1) == 1) num = "+1 " + num.substr(1, 3) + "-" + num.substr(4, 3) + "-" + num.substr(7, 4);
        else num = "+" + num.substr(0, 2) + " " + num.substr(2, 3) + "-" + num.substr(5, 3) + "-" + num.substr(8, 3);
    }

    return num;
}​

http://jsfiddle.net/tnv2m/

【讨论】:

  • 是的,这正是我所需要的,您能否举个代码示例,我如何将它与输入一起使用以使 phone_number 的更改立即内联输入?谢谢!
  • 它不工作 :(,我的意思是我不能像 00 那样输入并且它没有格式化之后的数字
  • 您不需要前导零,因此它们会立即被删除
  • 当然可以,因为如果号码是0016073222153 则为+1 607-322-2153
  • 我不知道该说什么,如果你一个一个地输入这些数字,你就会得到确切的结果。
【解决方案2】:

对于国家代码,这不是很复杂(我认为),只是有点繁琐的工作。

您可以获得国家/地区代码列表here。然后你取出第一个数字并从调用代码表中确定是否有下一个数字你应该读;重复直到你确定了国家代码。

对于其余的数字,您可以执行以下操作:

join('-', str_split($nr, 3));

这为您提供了 3 位数字组,以破折号分隔。

【讨论】:

  • 我不能像一般规则一样用加号(+)替换 00,然后变成这种格式 x-xxx-xxx-xxxx 吗?谢谢!
  • @Jimmy 当然你可以用+ 替换00 但是国家代码的长度并不总是一样的:)
  • 那么您认为 Jack 应该如何格式化电话号码?例如,我来自美国和英国 :(
  • 对于0049xxxx,将00替换为+,然后读取第一个数字;从表中您可以看到以4 开头的代码至少有2 位数字,因此您再读一位,最终得到49 ... 那么您就有+49;其余数字是本地部分。
  • 这种方式太复杂了,我想要一些更简单的东西
【解决方案3】:

您将无法以通用方式做到这一点。每个国家都有不同的格式,不同的区域编号等等。如果没有保留所有格式规则的精确数据库,您将无处可去。您知道规则的国家/地区的格式或放弃该想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多