【问题标题】:Parsing log with JavaScript使用 JavaScript 解析日志
【发布时间】:2012-03-05 15:57:19
【问题描述】:

我只需要从以下位置提取“40:37.298s”:

Total time: 40:37.298s

使用 JS,但我是 JS 新手,谁能帮忙?

【问题讨论】:

    标签: javascript regex parsing logging


    【解决方案1】:
    > 'Total time: 40:37.298s'.substr(12)
    '40:37.298s'
    

    如果您想使用正则表达式以获得更大的灵活性:

    > /([0-9]+:[0-9]+\.[0-9]+s)/.exec('Total time: 40:37.298s')[1]
    '40:37.298s'
    

    【讨论】:

      【解决方案2】:

      有很多方法可以做到这一点。这是一个:

      var str = "Total time: 40:37.298s";
      str.split(": ")[1]
      

      在大多数情况下,我更喜欢在某个已知的枢轴上进行拆分,而不是尝试提取特定的子字符串(如其他人所示),原因如下:

      • 更灵活;如果字符串的第一部分包含细微的变化,这仍然有效(但 substring 方法不会)
      • 更容易查看提取的内容(但子字符串方法要求我手动计算字符串中的位置以验证我选择的内容是否正确)

      【讨论】:

        【解决方案3】:
        var time = 'Total time: 40:37.298s';
        
        time = time.match(/\d{1,2}:\d{1,2}\.\d+s/);
        

        http://jsfiddle.net/ypzgJ/

        【讨论】:

          【解决方案4】:

          substring 方法就是你要找的:

          "Total time: 40:37.298s".substring("Total time: ".length);
          

          【讨论】:

            【解决方案5】:
            var result = "Total time: 40:37.298s".replace(/^.*([0-9]{2}:[0-9]{2}\.[0-9]{3}s)/g,'$1')
            

            【讨论】:

              【解决方案6】:
              var item = 'Total time: 40:37.298s';
              var pattern = /\d{1,2}\:\d{2}\.\d{3}s/g;
              var res = pattern.exec(item);
              

              即:

              • \d{1,2} 一位或两位数
              • \: ':' 字符
              • \d{2} 两位数
              • 。这 '。'字符
              • \d{3} 三位数
              • s 's' 字符

              【讨论】:

              • 注意,Regexp .exec() 会将数组中的匹配项分配给res,因此要从上面的代码中获取实际匹配的值,您需要查询res[0]
              【解决方案7】:

              我会说使用像[:\.0-9]*s这样的正则表达式

              例如

              yourText.match("regex")
              

              在你的情况下是

              "Total time: 40:37.298s".match("[:\.0-9]*s")[0]
              

              它将返回40:37.298s

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-04-20
                • 2021-01-27
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-03-26
                相关资源
                最近更新 更多