私はこの文字列を持っています
[111]テストチーム+3½-110
そして私はこれを期待しています
チーム:テストチーム、ベット:+3½-110
jqueryでそれを行うにはどうすればよいですか?
TIA
私はこの文字列を持っています
[111]テストチーム+3½-110
そして私はこれを期待しています
チーム:テストチーム、ベット:+3½-110
jqueryでそれを行うにはどうすればよいですか?
TIA
これには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つ以上の非文字が続きます。+
var str = '[111] Test Team +3½-110';
str.replace('[111] Test Team','team : Test Team, bet :');