deromanize = {
let symbols = { I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000 };
return function deromanize($) {
if (
null ===
$.match(/^M{0,3}(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/i)
) {
throw Error("Only Roman numerals are allowed");
}
$ = $.toUpperCase().split("");
let number = 0;
while ($.length) {
let value = symbols[$.shift()];
number += value * (value < symbols[$[0]] ? -1 : 1);
}
return number;
};
}