2016-11-17 4 views
-1

を並べ替え:JavaScriptの正規表現文字列の翻訳と私は以下の文字列を必要とする

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

好ましくは使用して正規表現:

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

はに回します。あなたは、文字列でのみ、その番号を持っている場合は、交換するこれを使用することができます

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

これらの5つの別々の文字列か、それとも単一の複数行文字列ですか? – Cerbrus

+1

正規表現には入力文字列とは何も関係ありません。それは混乱している。それらを理解するためのクロスリーディングを必要としない自己完結型の質問を書こうとしてください。 – Tomalak

+0

前述のように、私はこの正規表現を他の文字列に対して行っています。上記のコードは別の正規表現の例です。 – DaveDavidson

答えて

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

+0

はい、あなたの答えもうまくいきますが、実際にはここでこの質問をする必要はありません。もしすべての演算子が文の最初の数字を取得して文を形成する必要があれば。開発者の心に来るべき問題は、残りの言葉がフォーマットに適合するかどうかである。はいの場合は、数字を選択します。 –

+0

@Maverick_Mrt:_ "文字列の残りの部分を鳴らす" _は質問の一部ではありません。 OPはちょうど1つの文字列を別のものに変換する必要があります。それがこの答えです。 – Cerbrus

+0

はい私は言った、それは...あなたの答えは数字ではないにもかかわらず、最初の手紙を選ぶだろう....あなたがしたことは彼が望んでいるものです...それは "no question"です –

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) 
+1

'/(\ d +)。+/g'はどうですか?その2番目のグループをキャプチャする必要はありません。 – Cerbrus

+0

@Cerbrusあなたは正しいです。 – DontVoteMeDown

関連する問題