我有以下字符串:
"Your number 2328681 is not in range [2428681 - 3328681]"
我需要在列表或数组中只获取后两个数字2428681
和3328681
,以便让我单独阅读它们。
搜索后,我找到了这个函数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]
答案 0 :(得分:1)
试试这个:
var str = "Your number 2328681 is not in range [2428681 -3328681]";
var spl1 = str.split("[")[1].split(" ").map(it => parseInt(it));
最终结果:
答案 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);