我必须通过 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
条件并更改它,但是我觉得我所做的一切都不是通用和最佳的方法。
任何人都可以帮助给出一些想法,我该如何编写一些通用代码,这些代码将在每个测试用例中通过。
提前致谢。