javascript - 国际电话输入号码格式有什么办法吗?

标签 javascript jquery libphonenumber intl-tel-input

据我了解,他们已经删除了最新国际电话输入库上的自动格式选项。此选项根据用户选择的国家/地区对号码进行格式化。但根据表单,我仍然可以使用 util.js 和 format-number 函数来实现此选项( https://github.com/jackocnr/intl-tel-input/wiki/utils.js )我尝试了多次,但无法应用此选项。例如,对于美国号码,我如何将号码格式化为以下示例:(201)-255-6655。这是我下面的代码。据我所知,这似乎是国际数字的最佳 js 库。

$( document ).ready(function() {

    $('#contactForm')
    .find('[name="phoneNumber"]')
        .intlTelInput({
            utilsScript:"https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/12.1.5/js/utils.js",
          
            autoPlaceholder: true,
            initialCountry:"us",
            geoIpLookup:"auto",

        });


    });
<!DOCTYPE html>
<html>
<head>
<title>Phone</title>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/12.1.5/css/intlTelInput.css">
<link rel="stylesheet" href="./intlmask.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/12.1.5/js/intlTelInput.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/12.1.5/js/utils.js"></script>

<script src="./intlmask.js"></script>
</head>
<body>

  <form id="contactForm" class="form-horizontal">
    <div class="form-group">
        <label class="col-xs-3 control-label">Phone number</label>
        <div class="col-xs-5">
            <input type="tel" class="form-control" name="phoneNumber" />
        </div>
    </div>
</form>

</body>
</html>

像这样 enter image description here

最佳答案

所以我基本上添加了一个函数,并在以用户为中心的输入之外运行它。 utils.js 已经为我们提供了格式化(intlTelInputUtils.formatNumber)。我们只需将号码和国家/地区代码/首字母传递给它即可。检查下面的代码

    function test(){
        var number =  $('input[name="phoneNumber"]').val();
        var classf = $(".selected-flag > div").attr("class");
        var flag = classf.slice(-2);
  
        console.log("check number: ", number);
        console.log("check classf: ", classf);
        console.log("check flag: ", flag);
        
        var formattedNumber = intlTelInputUtils.formatNumber(number, flag, intlTelInputUtils.numberFormat.INTERNATIONAL);
        $('input[name="phoneNumber"]').val(formattedNumber);

}

关于javascript - 国际电话输入号码格式有什么办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47682942/

相关文章:

Java:类似 Javascript 的分割行为

javascript - 加载特定脚本后如何显示某些内容?

libphonenumber - 仅在可能的情况下转换为 E164?

python - 在 python 电话号码库中获取号码的匹配区域

javascript - 有没有办法使用 getUserMedia 减少延迟?

javascript - 在 jQuery 中使用 find() 而不是 > 作为子选择器是否更有效?

javascript - 通过.htaccess Node.js Express隐藏端口号

javascript - 如何在 javascript/jQuery 中创建命名空间和类

jquery - Backbone.js 事件绑定(bind)。就像 Jquery 中的 "delegate"一样?

ios - iOS 上来自国家/地区代码的电话号码格式