Код страны заполняется в локальной части численности периодически при использовании MuiteLinputJavascript

Форум по Javascript
Ответить
Anonymous
 Код страны заполняется в локальной части численности периодически при использовании MuiteLinput

Сообщение Anonymous »

Когда пользователь выбирает код страны из раскрывающегося списка. Он заполняется в местной номере. Например, набор страны по умолчанию - это код страны '+39', когда я меняю на Ямайку с кодом страны '+1', он появляется в местной части номера телефона с до сих пор код страны с «+39». Я должен реконструировать номер телефона для проверки номера телефона.
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 getCallingCodeFromCountry = (countryCode) => {
try {
return '+' + getCountryCallingCode(countryCode);
} catch {
return '+39'; // fallback
}

{
const countryCode = getCountryCode(value) || getCallingCodeFromCountry(country);
let localNumber = getLocalNumber(value);
localNumber = localNumber.replace(/\D/g, '').slice(0, 10);
const newPhone = `${countryCode} ${localNumber}`;
setFormData({ ...formData, phone1: newPhone });
}}
onCountryChange={(newCountry) => setCountry(newCountry)}
onFocus={() => setFocusedField('phone1')}
defaultCountry={country}
forceCallingCode
label={t('confirmPhoneNumber')}
sx={{ mb: 2, width: '250px' }}
/>
< /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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»