Разницы в том, какой метод преобразования чисел нет. Однако во всех методах у меня с этим возникает небольшая проблема.
Моя проблема в том, что указатель пишущей машинки на клавиатуре перескакивает в конец, если я выбираю число в середине чисел с помощью мыши или коснитесь (на мобильном телефоне) и измените один или несколько номеров. Пожалуйста, посмотрите это изображение, вставленное ниже для пояснения. Я также добавил ссылку JSFiddle.

< /p>
https://jsfiddle.net/paulvek/4js965fr/7/
Код: Выделить всё
const phoneNumberInput = document.getElementById('phoneNumberInput');
phoneNumberInput.addEventListener('input', (event) => {
const phoneNumberValue = event.target.value;
const englishPhoneNumberValue = toEnglishDigits(phoneNumberValue);
const numericPhoneValue = englishPhoneNumberValue.replace(/[^\d۰-۹٠-٩]/g, ''); // Added line
event.target.value = numericPhoneValue;
});
function toEnglishDigits(str) {
const persianNumbers = ["۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹", "۰"];
const arabicNumbers = ["١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩", "٠"];
const englishNumbers = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"];
return str.split("").map(c => englishNumbers[persianNumbers.indexOf(c)] ||
englishNumbers[arabicNumbers.indexOf(c)] || c).join("")
}Код: Выделить всё
Если пользователь выбирает одну из средних цифр с помощью английской клавиатуры и меняет он там изменится, и мигающий индикатор типа указателя того же типа останется там.
Но если он/она выберет и изменит одну из средних цифр с помощью персидской или арабской клавиатуры , изменение выполнено правильно. Но проблема в том, что текстовый курсор перескакивает в конец.
Эта проблема возникает только при вводе или вставке текста на фарси и арабском языке. В чем может быть проблема?
Только тогда, когда он хочет выбрать среди чисел два или три числа и изменить их. При написании первого числа он перескакивает в конец, а затем вторая цифра, которая должна была быть написана рядом с первой цифрой в том же месте, которое он выбрал, уходит в конец, и это все портит. Если вы проверите, то увидите, что с английским такой проблемы нет.
Подробнее здесь: https://stackoverflow.com/questions/778 ... r-in-javas
Мобильная версия