如何在Javascript中仅将字符串中的X数字作为数组获取

时间:2017-09-15 12:52:25

标签: javascript regex

我有以下字符串:

"Your number 2328681 is not in range [2428681 - 3328681]"

我需要在列表或数组中只获取后两个数字24286813328681,以便让我单独阅读它们。

搜索后,我找到了这个函数match(),并尝试执行以下操作:

var thestring = "Your number 2328681 is not in range [2428681 -3328681]"
var numb = thestring.match(/\d/g);
numb = numb.join("")
alert(numb)

或使用replace()

var thestring = "Your number 2328681 is not in range [2428681 -3328681]"
var num = thestring.replace(/\D/g, '');
alert (num)

在这两种情况下,我都会"232868124286813328681"我不知道如何将其转换为包含最后两个数字的列表,例如[2428681, 3328681]

5 个答案:

答案 0 :(得分:1)

试试这个:

var str = "Your number 2328681 is not in range [2428681 -3328681]";
var spl1 = str.split("[")[1].split(" ").map(it => parseInt(it));

最终结果:

enter image description here

答案 1 :(得分:1)

您可以获取所有数字,并slice结果删除找到的第一个数字:



s = "Your number 2328681 is not in range [2428681 -3328681]";
g = s.match(/(-?\d+)/g);
console.log(g);
console.log(g.slice(1));




另一种选择,因为你说数字总是在括号内,你可以使用这些信息:



s = "Your number 2328681 is not in range [2428681 -3328681]";
g = s.match(/\[(-?\d+).*?(-?\d+)\]/);
console.log(g);
console.log(g.slice(1));




答案 2 :(得分:1)

在这里,我将如何做到这一点,首先,我将字符串拆分为开括号。

functions(str){
  str.split("[")
}

然后取最后一个元素,它将是两个数字"2428681 -3328681]"

的字符串
functions(str){
      str.split("[")[1]
    }

然后,修剪该尾随括号

functions(str){
  var newstr = str.split("[")[1]
  newstr = newstr.slice(0, -1)
}

然后,在空格上再次拆分,这应该给你最后的数组。所以我们结束了

functions(str){
  var newstr = str.split("[")[1]
  newstr = newstr.slice(0, -1)
  return newstr.split(" ")
}

答案 3 :(得分:1)

另一种解决方案:



var thestring = "Your number 2328681 is not in range [2428681 -3328681]".match(/\[(.*?)\]/);
console.log(thestring[1].split(" "))




答案 4 :(得分:0)

你可以做到



let str = "Your number 2328681 is not in range [2428681 -3328681]"

let result = str.match(/\[(-?\d+) (-?\d+)\]/);

if(result)
    result.shift();
console.log(result);