DaveDavidson DaveDavidson - 17 days ago 5
Javascript Question

JavaScript regex string translation and reordering

I need the following strings:

1st Set Risultato Esatto
2nd Set Risultato Esatto
3rd Set Risultato Esatto
4th Set Risultato Esatto
5th Set Risultato Esatto


Turning into:

Punteggio 1° Set
Punteggio 2° Set
Punteggio 3° Set
Punteggio 4° Set
Punteggio 5° Set


Preferably using regex. I have done the following for my first solution:

const regex = /Set ([0-9.]+) Total Games Over\/Under ([0-30.]+)/;
let match;
let browserReturn;
if(marketLabel.includes('Set' && 'Total Games Over/Under')) {
match = regex.exec(marketLabel);
browserReturn = 'Under/Over ' + match[2] + ' Giochi Set ' + match[1];
return browserReturn;
}

Answer

Since you mention the numbers are only ever going to be between 1 and 5, we can make this rather simple:

var strings = ["1st Set Risultato Esatto", "2nd Set Risultato Esatto", "3rd Set Risultato Esatto", "4th Set Risultato Esatto", "5th Set Risultato Esatto"];

for (var i = 0; i < strings.length; i++) {
  console.log("Punteggio " + strings[i][0] + "° Set");
}

You only need to get the first character from each string (strings[i][0]), and place that into the result string.

Another option:

var strings = ["1st Set Risultato Esatto", "2nd Set Risultato Esatto", "3rd Set Risultato Esatto", "4th Set Risultato Esatto", "5th Set Risultato Esatto"];
var result = strings.map(function(str){
    return "Punteggio " + str[0] + "° Set";
});
console.log(result);


In case the strings aren't separated yet, you're going to have to split them, first:

var str = `1st Set Risultato Esatto
2nd Set Risultato Esatto
3rd Set Risultato Esatto
4th Set Risultato Esatto
5th Set Risultato Esatto`;

var strings = str.split(/[\r\n]+/);

console.log(strings);

Comments