已经找到许多答案,如何将东部阿拉伯数字(٠١٢٣٤٥٦٧٨)转换为西部阿拉伯数字(01234567),反之亦然。

但是,有一种方法可以将数学运算符应用于东部阿拉伯数字。
我正在寻找类似以下内容的东西:

'١٢٣'+'١١٢'==235
'١٢٣'-'١١٢'==-11
'٢'*'٣'==6
 '١'==='٢'   //false

最佳答案

您可以扩展Number类并覆盖valueOf方法(基于ES6的解决方案)



class EANum extends Number{
     constructor(){
         super();
         this.value=arguments[0];
     }
    valueOf(){
       return  Number( this.value.replace(/[٠١٢٣٤٥٦٧٨٩]/g,(d)=> d.charCodeAt(0) - 1632).replace(/[۰۱۲۳۴۵۶۷۸۹]/g, (d)=> d.charCodeAt(0) - 1776));
    }
    toString(){
       return this.valueOf();
    }

}

var a=new EANum('٣٤'),b=new EANum('١١');
console.log(a); //
console.log(a+b); //45
console.log(a-b); //23
console.log(a*b); //374

关于javascript - 使用Javascript将运算符(+,-,*,/)应用于东部阿拉伯数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38791422/

10-11 12:48