У меня есть строка, которая содержит даты в мм-гггг;гггг-мм;гггг-мм-дд и др. форматы.Цель состоит в том, чтобы преобразовать часть месяца подстроки даты в римскую числовую запись, например,
12-2018 ... 2018-12-28
для преобразования в
XII-2018 ... 2018-XII-28
Я использую эту функцию для преобразования обычных в римские цифры:
// /7658409/preobrazovat-chislo-v-rimskuy-tsifru-v-javascript
function romanize(num) {
var lookup = {M:1000,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1},roman = '',i;
for ( i in lookup ) {
while ( num >= lookup[i] ) {
roman += i;
num -= lookup[i];
}
}
return roman;
}
Регулярное выражение, используемое для нахождения подстроки месяца, равно
var re = /(19|20\d{2})\b-(\d{2})/g;
Первое совпадение в скобках ($ 1) - это год 19YY или 20YY.Вторая ($ 2) - это подстрока месяца.Проблема в том, что я не могу передать $ 2 в качестве параметра, т.е.
string = string.replace(re, "$1-" + romanize($2));