Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:如何捕获字符串中的特定值?_Javascript - Fatal编程技术网

JavaScript:如何捕获字符串中的特定值?

JavaScript:如何捕获字符串中的特定值?,javascript,Javascript,我有下面的字符串,我需要从Mem:行捕获数字31位。空格是动态的,因此我无法捕捉正确的数字 字符串: Swap: 1 0 1 Mem: 31 27 3 0 1 18 我正在尝试下面的代码,无法继续 let lines = output.split('\n'); for (var i = 0; i < line

我有下面的字符串,我需要从Mem:行捕获数字31位。空格是动态的,因此我无法捕捉正确的数字

字符串:

Swap:            1          0          1        
Mem:            31         27          3          0          1         18
我正在尝试下面的代码,无法继续

let lines = output.split('\n');
for (var i = 0; i < lines.length; i++) {
  var newArray = lines[i];

  if (newArray.indexOf('Mem:') > -1) {
    let n = newArray.split(":");

  }
}
let line=output.split('\n');
对于(变量i=0;i-1){
设n=newArray.split(“:”);
}
}

随“Mem”字符串一起提供(可能来自
数组),它很简单:

const str=“Mem:31122 27 3 0 1 18”;
const subStr=str.split(':')[1].trim();
常量num=subStr.subStr(0,subStr.indexOf(“”));

console.log(num)您可以找到行并获得第一个数字

var行='Swap:1 0 1\nMem:31 27 3 0 1 18',
firstNum=lines.split('\n')。查找(s=>s.includes('Mem'))。匹配(/\d+/);

console.log(firstNum[0])
您可以使用regex
Mem:\s*(\d+)
来获取
Mem:
之后的第一个数字以及捕获组中未知数量的空白。然后使用获取索引
1
处的捕获组

const str=`Swap:1 0 1
成员:312730118`
常量[,数字]=str.match(/Mem:\s*(\d+/)
控制台日志(编号)
var行='Swap:1 0 1\nMem:31 27 3 0 1 18',
firstNum=lines.split('\n')。查找(s=>s.includes('Mem'))。匹配(/\d+/);

console.log(firstNum[0])请编辑问题并添加一些字符串限制。原始问题中的输入是一个字符串,而不是数组。感谢Randy的回复。如果31是动态的呢?可能是3003134。我们可以相应地调整代码吗?编辑答案以适应您的问题。