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