JavaScript正则表达式字符串转换和重新排序

时间:2016-11-17 12:05:49

标签: javascript regex

我需要以下字符串:

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

转入:

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

最好使用正则表达式。我已经为我的第一个解决方案做了以下事情:

  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;
  }

2 个答案:

答案 0 :(得分:1)

既然你提到的数字只会在15之间,我们可以说这很简单:

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");
}

您只需要从每个字符串(strings[i][0])获取第一个字符,并将其放入结果字符串中。

另一种选择:

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);

如果字符串尚未分离,您将不得不拆分它们,首先:

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);

答案 1 :(得分:0)

如果您的字符串中只有该数字,则可以使用此替换:

replace(/(\d)(.+)/g, "Punteggio $1º Set")

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

strings.forEach(x => console.log(x.replace(/(\d+).+/g, "Punteggio $1º Set")));

它仅适用于以数字开头的特定字符串:

(\d+) - Takes the number from the beggining into the first block($1)