我有一个从数据库中获得的字符串,例如"96170123456";
但电话号码并不总是像上面那样,它是国际的,
那么如何将其放入intl电话号码
phoneNbr = "+96170123456";
PhoneNumber number = PhoneNumber(phoneNumber: phoneNbr, isoCode: 'LB');
InternationalPhoneNumberInput(
onInputChanged: (PhoneNumber number) {
print(number.phoneNumber);
},
onInputValidated: (bool value) {
print(value);
},
ignoreBlank: false,
initialValue: number,
)
我使用intl_phone_number_input: ^0.7.0+2
那么,如何用程序的方式了解iso代码呢??你给我什么建议?
您可以使用getRegionInfoFromPhoneNumber
方法来检查此电话号码是否为有效号码。
try {
var phoneNumber = "+234 500 500 5005";
PhoneNumber number = await PhoneNumber.getRegionInfoFromPhoneNumber(phoneNumber);
InternationalPhoneNumberInput(
onInputChanged: (PhoneNumber number) {
print(number.phoneNumber);
},
onInputValidated: (bool value) {
print(value);
},
ignoreBlank: false,
initialValue: number,
);
} catch(e) {
log("This phone number is not a valid number");
}
我不知道你真正想要什么,因为我还不清楚这个问题,但我认为这应该可以
在initState:中使用此
final List<Locale> systemLocales=WidgetsBinding.instance!.window.locales;
String? isoCountryCode = systemLocales.first.countryCode;
或者你可以使用另一个,但在构建上下文中:
Locale myLocale = Localizations.localeOf(context);
print(myLocale.countryCode);
这将得到国家代码,你可以这样添加:
PhoneNumber number = PhoneNumber(phoneNumber: phoneNbr, isoCode: '${myLocale.countryCode}');