首页 > 解决方案 > 如何将波斯数字转换为英文数字?

问题描述

我只想将数字的形状从波斯语更改为英语(我的意思是像这样的 1400/06/31)。我的意思是保持波斯语。只有文本字体应该是英文。我怎样才能做到这一点?

 var today = new Date().toLocaleDateString('fa-IR');
  var field = document.querySelector('#tday');
  field.value = today;
<input type="text" name="tday" class="form-control w-100 text-center d-inline-block" id="tday">

标签: javascripthtmljquerycss

解决方案


您可以使用此功能将波斯数字转换为英文数字

export default function toEnglishDigits(num) {

  const id = {
    '۰': '0',
    '۱': '1',
    '۲': '2',
    '۳': '3',
    '۴': '4',
    '۵': '5',
    '۶': '6',
    '۷': '7',
    '۸': '8',
    '۹': '9',
  }
  return num ? num.toString().replace(/[^0-9.]/g, function (w) {
    return id[w] || w
  }) : null
}

并使用它来将英文数字转换为波斯数字

export default function toPersianDigits (num) {
  if (num?.toString()) {
    const persianNumbers =
      '\u06F0\u06F1\u06F2\u06F3\u06F4\u06F5\u06F6\u06F7\u06F8\u06F9'
    return new String(num).replace(/[0123456789]/g, (d) => {
      return persianNumbers[d]
    })
  }
  return num
}

您还可以使用任何格式将字符串传递给这些函数。


推荐阅读