JavaScript - 来自it-IT的惯例 - 意大利(意大利)号码系统到en-US - 英语(美国)号码系统

时间:2014-05-13 19:45:03

标签: javascript number-systems

我必须通过JavaScript将意大利语编号系统转换为英文编号系统,并且我已经在下面写了代码来实现这一点。

function fnNumSysConvertor(number) {
    if(number.toString().lastIndexOf(",") == -1 && number.toString().indexOf(".") == 0 )
         return number;
    else if(number.toString().lastIndexOf(",") != -1 && number.toString().indexOf(".") != -1 ) {
         if(number.toString().length === number.toString().lastIndexOf(",") + 1)
             return removeLastComma(number);
         else 
            return replaceDot(number);
     }      
     else if (number.toString().lastIndexOf(",") != -1)
         return removeLastComma(number);
     else if (number.toString().indexOf(".") != -1)
        return replaceDot(number);
     else
        return number;
}

function removeLastComma(number) {
    number=number.substring(0,number.lastIndexOf(","))
    return number.toString();
}

function replaceDot(number) {
    number = number.replace(/\./g, "");     
    return number.toString();
}

测试用例:

fnNumSysConvertor("80"); - 80 - Passed
fnNumSysConvertor("1.220"); - 1220 - Passed
fnNumSysConvertor("227.094,"); - 227.094 - Passed
fnNumSysConvertor("1.083.003,"); - 1.083.003 - Failed. It should be 1083.003

此代码在某些情况下工作正常,对于失败的情况,我也可以再添加一个if条件并对其进行更改,但我觉得我所做的一切都不是通用的最佳方法。

任何人都可以帮忙解释如何编写一些通用代码,这些代码将在每个测试用例中通过。

提前致谢。

0 个答案:

没有答案