0

私はこの文字列を持っています

[111]テストチーム+3½-110

そして私はこれを期待しています

チーム:テストチーム、ベット:+3½-110

jqueryでそれを行うにはどうすればよいですか?

TIA

4

2 に答える 2

2

これにはjQueryを使用せず(「json」タグも適切ではありません)、標準のJS文字列操作関数(正規表現の有無にかかわらず)を使用します。

文字列を分割するためのルールは、角かっこで囲まれた先頭の値を無視し+、チーム名としてまでのすべてを、+(それ自体を含む+)以降のすべてを賭けとして使用することであると想定します。複数ある場合+は、最後を除くすべてがチーム名の一部と見なされます。

function formatBet(input) {
    return input.replace(/^(\[[^\]]*\] )?(.+)( \+[^+]+)$/,"team: $2, bet:$3");
}

console.log(formatBet("[111] Test Team +3½-110"));
     // logs "team: Test Team, bet: +3½-110"
console.log(formatBet("Test Team +3½-110"));   
     // logs "team: Test Team, bet: +3½-110"
console.log(formatBet("[111] Test + Team +3½-110"));
     // logs "team: Test + Team, bet: +3½-110"
console.log(formatBet("[111] Whatever +3½-110"));
     // logs "team: Whatever, bet: +3½-110"

デモ: http: //jsfiddle.net/LKJjw/

私の正規表現では:

^(\[[^\]]*\] )?

...オプションで、文字列の先頭で一致し、[その後に0個以上の非]文字が続き、その後]にスペースが続きます。それで:

(.+)

...チーム名と一致します-1つ以上の任意の文字。それで:

( \+[^+]+)$

...スペースに一致し、その後に文字列の最後に+1つ以上の非文字が続きます。+

于 2012-11-28T04:37:46.390 に答える
0
var str = '[111] Test Team +3½-110';
str.replace('[111] Test Team','team : Test Team, bet :');
于 2012-11-28T04:28:47.397 に答える