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/

在我的正则表达式中:

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

...可选地匹配字符串 a 的开头,[后跟零个或多个非]字符,后跟]一个空格。然后:

(.+)

...匹配团队名称 - 一个或多个任意字符。然后:

( \+[^+]+)$

...匹配一个空格,后跟 a +,后跟+字符串末尾的一个或多个非字符。

于 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 回答