【问题标题】:Getting Rid of Extraneous Characters in a String-Javascript摆脱 String-Javascript 中的无关字符
【发布时间】:2015-12-30 07:33:21
【问题描述】:

我正在使用 Javascript 从 API 加载有关 NBA 比赛的数据,我想对其进行操作,但遇到了问题。每个游戏都是自己独立的对象,数据是这样返回的:

Date: "Nov 7, 2014"
Opponent: "@ Charlotte"
Result: "L"
Score: "122-119"
Spread: "+1.5"

根据球队是主场还是客场,该特定比赛的对手姓名前会出现“@”或“vs”。我想去掉这个,让“对手”键在上面的例子中只有“夏洛特”作为它的值。

我尝试过使用
gameLog[i].Opponent = (gameLog[i].Opponent.split(" ").pop

删除空格前的任何字符,但是当团队名称中包含空格(例如“纽约”或“洛杉矶”)时,这会破坏数据

【问题讨论】:

  • 你考虑过使用正则表达式吗?
  • 我对正则表达式不太熟悉,但是你会如何使用它们来解决这个问题?
  • @BenMelito 我刚刚用正则表达式添加了答案

标签: javascript json string


【解决方案1】:

这将获取字符串,并从第一个空格的索引开始创建一个新的子字符串。例如:

@New York = 在@ 之后开始的新字符串。 -> 纽约

gameLog[i].Opponent = gameLog[i].Opponent.substr(gameLog[i].Opponent.indexOf(' ')+1);

【讨论】:

  • 你能提供更多关于它实际在做什么的解释吗?这将是一个更好的答案。
  • 它接受字符串,并从第一个空格的索引开始创建一个新的子字符串。例如:@New York = 在@ 之后开始的新字符串。 -> 纽约
【解决方案2】:

我想,类似的东西可能会有所帮助。

var home = "@ Charlotte";
var opponent = "vs New York";

function parse(team){

    // Case when it is a home team
    if ( team.indexOf("@") === 0 ){

    return team.replace("@","").trim();

  // Away team
  } else {

    return team.replace("vs","").trim();

  }

}

console.log( parse(home) );
console.log( parse(opponent) );

【讨论】:

    【解决方案3】:
    gameLog[i].Opponent = (gameLog[i].Opponent.split(" ").slice(1).join(" "));
    
    1. 根据空格字符分割
    2. 切掉数组中的第一项
    3. 用空格将数组的内容重新连接起来。

    【讨论】:

      【解决方案4】:

      您可以在循环对象数组时使用正则表达式替换不需要的字符。

      for (var i = 0; i < arr.length; i++) {
            arr[i].Opponent = arr[i].Opponent.replace(/@\s|vs\s/g, '');
      }
      

      这是jsbin

      【讨论】:

        【解决方案5】:

        您需要substr() 方法:

        var str = "@ Charlotte";
        var res = str.substr(2);
        

        结果:Charlotte

        除非“vs”后面还有一个空格,这个就不清楚了。

        那么你可以使用:

        var str = "@ Charlotte";
        var res = str.substr(str.indexOf(' ')+1);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-04
          • 1970-01-01
          • 2011-04-22
          • 2020-03-30
          • 2022-11-19
          相关资源
          最近更新 更多