Как заменить все цифры на арабские или персидские

Я использую const для определения изменений, и это заняло у меня так много времени. Как я могу их использовать и как я могу сообщить коды?:

const [num0en, num1en, num2en, num3en, num4en, num5en, num6en, num7en, num8en, num9en, percEn] = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "%"]
const [num0fa, num1fa, num2fa, num3fa, num4fa, num5fa, num6fa, num7fa, num8fa, num9fa, PercFa] = ["۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹", "٪"]
const En0 = "0";
const Pe0 = "۰";
const En1 = '1';
const Pe1 = '۱';
const En2 = "2";
const Pe2 = "۲";
const En3 = "3";
const Pe3 = "۳";
const En4 = "4";
const Pe4 = "۴";
const En5 = "5";
const Pe5 = "۵";
const En6 = "6";
const Pe6 = "۶";
const En7 = "7";
const Pe7 = "۷";
const En8 = "8";
const Pe8 = "۸";
const En9 = "9";
const Pe9 = "۹";
const EnPercents = "%";
const PePercents = "٪";
const Rep0 = num0en.replaceAll(En0, Pe0);
const Rep1 = num1en.replaceAll(En1, Pe1);
const Rep2 = num2en.replaceAll(En2, Pe2);
const Rep3 = num3en.replaceAll(En3, Pe3);
const Rep4 = num4en.replaceAll(En4, Pe4);
const Rep5 = num5en.replaceAll(En5, Pe5);
const Rep6 = num6en.replaceAll(En6, Pe6);
const Rep7 = num7en.replaceAll(En7, Pe7);
const Rep8 = num8en.replaceAll(En8, Pe8);
const Rep9 = num9en.replaceAll(En9, Pe9);
const RepPer = percEn.replaceAll(EnPercents, PePercents);
const ReplaceAllNumbers = Rep0&&Rep1&&Rep2&&Rep3&&Rep4&&Rep5&&Rep6&&Rep7&&Rep8&&Rep9&&RepPer
    var post =  "0123456789";
// I need to use it in post below:
document.write(post);

и, кстати, вы бы заметили некоторые ошибки. заранее прошу прощения..

Что должен содержать ReplacedAllNumbers? А почему ты им не пользуешься? Трудно сказать, о чем вы спрашиваете, все, что вы делаете, это печатаете строку (post) и игнорируете весь код, который вы написали выше.

Juan Mendes 06.04.2022 20:19

Привет. Спасибо за ответ. Я пытаюсь изменить, например, каждые 3 на ۳, где бы они ни находились. В Person3 или 3241 или любом другом месте. Я пытаюсь изменить их, чтобы другие части поста не пострадали. И, например, если вы используете document.write(post), вы получите 3 как ۳ в нем.

mohsen haqiqat 06.04.2022 20:55
document.write(Number(post).toLocaleString("fa-IR", {style: "decimal",useGrouping: false})
fnostro 06.04.2022 21:06

когда рядом с цифрами есть слово, это делает ошибку на персидском языке! Пишет: NoNumber.

mohsen haqiqat 06.04.2022 21:46
Получение данных из формы с помощью JavaScript - краткое руководство
Получение данных из формы с помощью JavaScript - краткое руководство
Получить данные из формы с помощью JS очень просто: вы запрашиваете элемент формы, передаете его конструктору new FormData() и, наконец, получаете...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Сравнение структур данных: Массивы и объекты в Javascript
Сравнение структур данных: Массивы и объекты в Javascript
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной,...
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
1
4
45
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используйте регулярное выражение и используйте функцию в качестве замены, чтобы она могла вернуть соответствующую замену. Это соответствие может быть в объекте.

const enToPe = {
    [num0en]: num0fa,
    [num1en]: num1fa,
    ..
};

let result = post.replace(/./g, char => enToPe[char] || char);
console.log(result);

var persianIran = "fa-IR"
var arabicEgypt = "ar-EG"

let num = 1234567890;

document.getElementById("num").innerText = num.toLocaleString(persianIran, {
  style: "decimal",
  useGrouping: false
});

document.getElementById("num1").innerText = num.toLocaleString(arabicEgypt, {
  style: "decimal",
  useGrouping: false
});

num = .42;
document.getElementById("pct").innerText = num.toLocaleString(persianIran, {
  style: "percent",
  useGrouping: true
});

document.getElementById("pct1").innerText = num.toLocaleString(arabicEgypt, {
  style: "percent",
  useGrouping: true
});

num = 1027;
document.getElementById("cur").innerText = num.toLocaleString(persianIran, {
  style: "currency",
  currency: "EUR"
});
document.getElementById("cur1").innerText = num.toLocaleString(arabicEgypt, {
  style: "currency",
  currency: "EUR"
});
div {
  display: inline-block;
  margin: 0 20px
}

div>p:first-child {
  margin-bottom: 8px;
  border-bottom: 1px solid gray;
  font-weight: bold;
}

p {
  margin: 2px;
}
<div>
  <p>Values</p>
  <p>1234567890 as Decimal</p>
  <p>.42 as Percent</p>
  <p>1027 as Currency</p>
</div>
<div>
  <p>Persian-Iran</p>
  <p id="num"></p>
  <p id="pct"></p>
  <p id="cur"></p>
</div>
<div>
  <p>Arabic-Egypt</p>
  <p id="num1"></p>
  <p id="pct1"></p>
  <p id="cur1"></p>
</div>

FWIW: html предназначен только для отображения, посмотрите на JS, где выполняется вся работа. Насколько я могу судить, вам не нужно было делать все эти замены строк.

fnostro 06.04.2022 22:33

Другие вопросы по теме