首页 > 解决方案 > 将英语数字转换为阿拉伯语或波斯语

问题描述

我正在尝试自定义管道以将数字转换为阿拉伯语或波斯语,或者找到将数字转换为阿拉伯数字的函数。

我有一个功能,但它不能给我一个稳定的结果,

例如我有这个日期:1400/2/2 ---> 2/2/1

     arabicNumbers = ['۰', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];

  convertToArabic = (number) => {
    return String(number).split('').map(char => {
      if (char === '/') {
        return '/';
      } else {
        return this.arabicNumbers[Number(char)]
      }
    }
    ).join('');
  }

这个函数没有给出稳定的结果,它会不断地切换数字的顺序。

我希望你能帮我解决这个问题

标签: javascriptangulararabic

解决方案


您可以使用以下 2 个简单的单行示例将阿拉伯或波斯数字转换为拉丁语(英语)并保持其余文本不变:

const numLatinToAr=n=>n.replace(/\d/g,d=>"٠١٢٣٤٥٦٧٨٩"[d]);
const numLatinToFa=n=>n.replace(/\d/g,d=>"۰۱۲۳۴۵۶۷۸۹"[d]);


console.log(numLatinToAr("1400/2/2"));  // to Arabic
console.log(numLatinToFa("1400/2/2"));  // to Persian


推荐阅读