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
このコードは、場合によっては正常に機能し、失敗した場合には、もう 1 つのif
条件を追加して変更することもできますが、私が行っていることは一般的で最善の方法ではないと感じています。
すべてのテストケースで合格する一般的なコードをどのように書くことができるか、誰かが考えを教えてください。
前もって感謝します。