JavaScript解析字符串和提取数字

时间:2017-03-07 17:39:03

标签: javascript

我想从以下字符串中获取总发送,总成功和总错误计数。

03/07/2017 17:11:28.5323 to www.google.com : 65.199.32.57 65.199.32.20 65.246.5.55 65.199.32.58 Total Sent: 107 Total Success: 107 Total Errors: 0 0 : 11 : 93 : 15.32/

到目前为止,我已尝试过以下方法,但尚未取得成功。 变量res保持在字符串之上。

以下导致错误

  

“TypeError:无法读取null的属性'1'

var matches = res.match(/(\d+)Total Sent(\d+)/);  
console.log(matches[1]);
console.log(matches[2]);

这会产生一个连接数组,字符串中的所有数字都不是我想要的。

var numberPattern = /\d+/g;
var numArr = res.match(numberPattern);
console.log(numArr);

我想要

Total Sent = 107
Total Success = 107
Total Error = 0.

2 个答案:

答案 0 :(得分:0)

您可以尝试substring功能

示例:

var String = str.substring(str.lastIndexOf(“Total Sent:”)+ 1,str.lastIndexOf(“”)); //获取总发送值

答案 1 :(得分:-1)

var input = '03/07/2017 17:11:28.5323 to www.google.com : 65.199.32.57 65.199.32.20 65.246.5.55 65.199.32.58 Total Sent: 107 Total Success: 107 Total Errors: 0   0 : 11  : 93 : 15.32/';

var match = input.match(/Total (\w+): (\d+)/g);

console.log(match);
// ["Total Sent: 107", "Total Success: 107", "Total Errors: 0"]

var output = match.join('\n').replace(/\:/g, ' =');

console.log(output);
/* 
   Total Sent = 107
   Total Success = 107
   Total Errors = 0
*/