43 lines
999 B
JavaScript
Executable File
43 lines
999 B
JavaScript
Executable File
'use strict';
|
|
module.exports = ( () => {
|
|
function replaceWithRange(expression, text, init, end) {
|
|
|
|
var numbers = [];
|
|
var last = parseInt(end);
|
|
var first = parseInt(init);
|
|
|
|
if(first > last){
|
|
last = parseInt(init);
|
|
first = parseInt(end);
|
|
}
|
|
|
|
for(var i = first; i <= last; i++) {
|
|
numbers.push(i);
|
|
}
|
|
|
|
return expression.replace(new RegExp(text, 'gi'), numbers.join());
|
|
}
|
|
|
|
function convertRange(expression){
|
|
var rangeRegEx = /(\d+)\-(\d+)/;
|
|
var match = rangeRegEx.exec(expression);
|
|
while(match !== null && match.length > 0){
|
|
expression = replaceWithRange(expression, match[0], match[1], match[2]);
|
|
match = rangeRegEx.exec(expression);
|
|
}
|
|
return expression;
|
|
}
|
|
|
|
function convertAllRanges(expressions){
|
|
for(var i = 0; i < expressions.length; i++){
|
|
expressions[i] = convertRange(expressions[i]);
|
|
}
|
|
return expressions;
|
|
}
|
|
|
|
return convertAllRanges;
|
|
})();
|
|
|
|
|
|
|