在 HTML 中将 libphonenumber 与 JavaScript 一起使用

Using libphonenumber with JavaScript in HTML

libphonenumber 是一个非常令人困惑的工具,考虑到网络上的大量实现和示例,所以请耐心等待。

我只是想通过 HTML 文件中的脚本标签,像使用其他 JavaScript 库(例如 jQuery)一样使用这个包。

我已经使用 Google 的撰写工具编译了 libphonenumber,通过指令 here

因此,对于这个单个文件,我尝试按如下方式使用它。但是,无论我尝试过什么,我似乎都无法访问其中的任何方法。

<script type="text/javascript" language="javascript" src="/static/js/libphonenumber.js"></script>
<script type="text/javascript">

    $(".phone-format").keyup(function () {
        // Don't reformat backspace/delete so correcting mistakes is easier
        if (event.keyCode != 46 && event.keyCode != 8) {
            var val_old = $(this).val();
            var newString = new libphonenumber.i18n.phonenumbers.AsYouTypeFormatter('US').input(val_old);
            $(this).focus().val('').val(newString);
        }
    });

</script>

这个使用场景完全不支持吗?

好吧,我想我应该早点 posted,因为通常情况下,一旦我 post 我找到了答案。

我只是在使用 JSFiddle 时偶然发现了这一点。我注意到它们具有您可以添加的依赖项,其中包括 libphonenumber 的 JavaScript 端口(我已经尝试使用)。虽然由于连接被拒绝而无法在 JSFiddle 中正确加载,link 仍然适用于 minified 版本。

看这里:Minified JavaScript of libphonenumber-js

一旦我将其放置到位并稍微修改了我的代码,突然之间我们就开始了比赛,一切都是金色的。

<script type="text/javascript" language="javascript" src="/static/js/libphonenumber-js.min.js"></script>
<script type="text/javascript">
     $(".phone-format").keyup(function () {
            var val_old = $(this).val();
            var newString = new libphonenumber.AsYouType('US').input(val_old);
            $(this).focus().val('').val(newString);
    });
</script>

我真的很好奇我在过去几天所做的所有搜索中是否遗漏了什么,因为我觉得这不应该这么困难或需要这么多逆向工程能够找到这个版本的包。

哦,好吧,希望这对某人有所帮助!