如何在Javascript中以数组形式从字符串中仅获取X个数字
我有以下字符串,如:如何在Javascript中以数组形式从字符串中仅获取X个数字,javascript,regex,Javascript,Regex,我有以下字符串,如: "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(/
"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()
在这两种情况下,我都得到了“232868124286813328681”
我不知道如何将它转换为包含最后两个数字的列表,如[2428681,3328681]
尝试以下方法:
var str = "Your number 2328681 is not in range [2428681 -3328681]";
var spl1 = str.split("[")[1].split(" ").map(it => parseInt(it));
functions(str){
str.split("[")[1]
}
最终结果:
您可以获取所有数字,并对结果进行切片,以删除第一个找到的:
s=“您的号码2328681不在[2428681-3328681]范围内”;
g=s.match(/(?\d+)/g);
控制台日志(g);
console.log(g.slice(1))代码>您可以执行以下操作
let str=“您的号码2328681不在[2428681-3328681]范围内”
让结果=str.match(/\[(?\d+)(?\d+)\]/);
如果(结果)
result.shift();
控制台日志(结果)代码>我将这样做,首先,我将在开括号中拆分字符串
functions(str){
str.split("[")
}
然后取最后一个元素,它是由两个数字组成的字符串“2428681-3328681]”
然后,修剪掉后面的支架
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(" ")
}
另一个解决方案:
var thestring=“您的号码2328681不在[2428681-3328681]范围内”。匹配(/\[(.*)\]);
console.log(字符串[1].split(“”)
使用捕获组。如果您的数字总是在括号之间,并且没有其他括号,您甚至不需要正则表达式。是的,先生,我的数字总是在括号之间。这不起作用,因为您按表示负数的-
进行拆分,如果两者都是正数,它将失败。编辑后,我认为这是最简单和最好的解决方案。这有一个问题,它不会考虑-
。在答案中也添加了这一点:)这一个非常有效!!等待接受你们的回答谢谢大家!!
functions(str){
var newstr = str.split("[")[1]
newstr = newstr.slice(0, -1)
return newstr.split(" ")
}