为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕妹3242003 2021-06-16 18:11:02
我有以下字符串,我需要从 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(":");  }}
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您可以使用正则表达式Mem:\s*(\d+)将第一个数字Mem:和未知数量的空格获取到捕获组。然后用于match获取位于 index 的捕获组1。


const str = `Swap:            1          0          1        

Mem:            31         27          3          0          1         18`


const [, number] = str.match(/Mem:\s*(\d+)/)


console.log(number)


查看完整回答
反对 回复 2021-06-18
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

提供 'Mem' 字符串(大概来自您的lines数组),就这么简单:


const str = "Mem:            31122       27          3          0          1         18";

const subStr = str.split(':')[1].trim();

const num = subStr.substr(0,subStr.indexOf(' '));


console.log(num);

如果问题中没有确定其他约束,我会根据需要更改答案。


查看完整回答
反对 回复 2021-06-18
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

var lines = 'Swap:            1          0          1        \nMem:            31         27          3          0          1         18',

    firstNum = lines.split('\n').find(s => s.includes('Mem')).match(/\d+/);


console.log(firstNum[0]);


查看完整回答
反对 回复 2021-06-18
  • 3 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信