How to rename/change from Roman Numerals to regular Numbers?

Javascript renaming examples. Javascript renaming is supported in version 3 or newer.

How to rename/change from Roman Numerals to regular Numbers?

Postby Hect000r » Mon Feb 07, 2022 2:43 am

Hello

I have several files that have Roman Numeral as part of the name

Day I - Topic A
Day II - Topic B
Day III - Topic C
Day IV - Topic D

How can i change the from Roman Numerals to 01, 02 , 03 leaving everythin else as is ?

Any suggestions ?

Regards

Hector
Hect000r
 
Posts: 1
Joined: Wed Feb 02, 2022 12:49 am

Re: How to change from Roman Numerals to regular Numbers ?

Postby Admin » Mon Feb 07, 2022 5:55 am

Hi, how many numbers do you have to convert, MIN / MAX?
Admin
Site Admin
 
Posts: 2343
Joined: Tue Mar 08, 2005 8:39 pm

Re: How to change from Roman Numerals to regular Numbers ?

Postby Admin » Mon Feb 07, 2022 6:07 am

This javascript function does it:

Code: Select all
function romanToArabic(roman){
    if(roman == null)
        return -1;
    var totalValue = 0,
        value = 0, // Initialise!
        prev = 0;
       
    for(var i=0;i<roman.length;i++){
        var current = char_to_int(roman.charAt(i));
   if (current < 0) return -1;
        if (current > prev) {
            // Undo the addition that was done, turn it into subtraction
            totalValue -= 2 * value;
        }
        if (current !== prev) { // Different symbol?
            value = 0; // reset the sum for the new symbol
        }
        value += current; // keep adding same symbols
        totalValue += current;
        prev = current;
    }
    return totalValue;
}

function char_to_int(character) {
    switch(character){
        case 'I': return 1;
        case 'V': return 5;
        case 'X': return 10;
        case 'L': return 50;
        case 'C': return 100;
        case 'D': return 500;
        case 'M': return 1000;
        default: return -1;
    }
}

var string = name;
string = string.split(" ");
var stringArray = new Array();
for(var i =0; i < string.length; i++){
    stringArray.push(string[i]);
    if(i != string.length-1){
        stringArray.push(" ");
    }
}

newName = "";
var arabic = "";

for(var i =0; i < stringArray.length; i++){
   arabic = romanToArabic(stringArray[i]);
   if (arabic > -1) newName += arabic; else newName += stringArray[i];
}


Copy and paste into BRU Javascript Renaming section.

If you have just a few numbers to convert you could otherwise use replace or character convertions.
Admin
Site Admin
 
Posts: 2343
Joined: Tue Mar 08, 2005 8:39 pm


Return to Javascript Renaming