I have to convert the Italian number system to English number system by JavaScript and I have write below code the achieve this.
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();
}
Test cases :
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
This code is working fine for some cases and for the failed case also I can put a one more if
condition and change it, however I feel whatever I am doing is not a generic and best approach.
Could anyone please help to give some idea how can I write some generic code which will be pass in every test cases.
Thanks in advance.