Когда пользователь выбирает код страны из раскрывающегося списка. Он заполняется в местной номере. Я должен реконструировать номер телефона для < /p>
import Keyboard from 'react-simple-keyboard';
import 'react-simple-keyboard/build/css/index.css';
import { MuiTelInput } from 'mui-tel-input';
const getCountryCode = (phoneStr) => {
const match = phoneStr.match(/^\+\d+/);
return match ? match[0] : '';
};
const getLocalNumber = (phoneStr) => {
const countryCode = getCountryCode(phoneStr);
return phoneStr.replace(countryCode, '').replace(/\D/g, '');
};
{
const countryCode = getCountryCode(value) || '+39';
let localNumber = getLocalNumber(value);
localNumber = localNumber.replace(/\D/g, '').slice(0, 10); // Force 10 digits max
const newPhone = `${countryCode} ${localNumber}`;
setFormData({ ...formData, phone: newPhone });
}}
onFocus={() => setFocusedField('phone')}
defaultCountry={country}
forceCallingCode
label={t('labelPhone')}
sx={{ width: '25rem'}}
/>
< /code>
У меня есть клавиатура на экране, чтобы получить ввод от пользователя < /p>
if (button === '{bksp}') {
if (focusedField.startsWith('phone')) {
setFormData(prev => {
const countryCode = getCountryCode(prev.phone) || "+39";
let localNumber = getLocalNumber(prev.phone);
localNumber = localNumber.slice(0, -1);
const newPhone = localNumber ? `${countryCode} ${localNumber}` : countryCode;
return { ...prev, [focusedField]: newPhone };
});
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... en-using-m