如何在将错误的国家代码传递给 google-libphonenumber 之前进行验证?

How to validate before passing a wrong country code to google-libphonenumber?

我正在使用库 google-libphonenumber 并注意到如果将不可行的选项传递给 phoneUtil.parseAndKeepRawInput('202-341-2345', 'ZZ') 它会自动抛出错误并破坏网站。

我想做的是允许某种方式说明如果这段代码不起作用然后发出警报和错误,或者我需要一种方法来验证之前所有 i18n iso 代码的输入。

所以我试图解决的确切问题是不让应用程序崩溃,因为传入了无效的国家调用代码或 iso 代码。例如,如果我将 zz 传递到第二个参数:

phoneUtil.parseAndKeepRawInput('202-341-2345', 'ZZ')

这导致我的整个应用程序崩溃并显示错误。虽然我想做的只是提醒错误,而不是让用户继续这个过程。所以有两种方法可以做到这一点。要么验证国家调用代码或 iso 代码,要么执行 try catch 块以在变量不起作用时发出错误警报。

我使用了 try catch 块,因为这是一种我可以直接显示错误的方式,告诉用户他们的 iso 代码无论如何都是错误的。所以不需要验证,因为它已经完成了。

代码如下:

  let userNumber = null;

    try {
      userNumber = phoneUtil.parseAndKeepRawInput(
        this.state.phoneNumber,
        this.state.isoCode.toUpperCase()
      );
    } catch (e) {
      alert(e);
      return;
    }

    if (userNumber) {
      alert(phoneUtil.isValidNumber(userNumber));
      alert(phoneUtil.format(userNumber, PNF.E164));
      return;
    }