我正在使用库 google-libphonenumber
,并注意到如果将不可行的选项传递给 phoneUtil.parseAndKeepRawInput('202-341-2345', 'ZZ')
,则它会自动抛出和错误并破坏站点。
我要做的是允许某种方式说明该代码是否不起作用,然后提醒和错误,或者我需要一种使用所有I18N ISO代码验证输入的方法。
,我要解决的确切问题是不崩溃,因为传递了无效的国家调用代码或ISO代码。的:
phoneUtil.parseAndKeepRawInput('202-341-2345', 'ZZ')
这导致我的整个应用程序崩溃并显示错误。虽然我要做的只是警告错误,而不是让用户继续进行该过程。因此,有两种方法可以做到这一点。验证国家调用代码或ISO代码,或者尝试捕获块以提醒错误,如果变量不起作用。
我接受了尝试捕获块,因为这是我直接显示错误的一种方式,该错误无论如何都告诉用户他们的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;
}