Логика замен будет слишком сложной, сделай лучше табличку от нуля до 19, а также все десятки (двадцать ... восемдесят, девяносто) туда внеси и сотни (двести, триста ...).
Еще вероятно понадобится учитывать род, типа тридцать два / тридцать две.
Вот похожее на английсом, можете посмотреть как устроено
https://www.npmjs.com/package/num-words