Javascript 将Parantsis之间的字符串推送到数组中存在问题
我正在尝试创建这样的数组Javascript 将Parantsis之间的字符串推送到数组中存在问题,javascript,jquery,regex,Javascript,Jquery,Regex,我正在尝试创建这样的数组 [ ["-0.75_-1.25_-1.75_-2.25"], ["-0.75_-1.25_-1.75_-2.25"] ] 从一个字符串,如: "-9.00_-6.50,-6.00_+6.00(-0.75_-1.25_-1.75_-2.25)(-0.75_-1.25_-1.75_-2.25)" 通过按下一个按钮,所有的字符串之间。我使用这个.match/[^]+/g regex尝试了这个方法,但是这会将所有内容添加到数组中,并且它只是一个类似的数组 [ [
[
["-0.75_-1.25_-1.75_-2.25"],
["-0.75_-1.25_-1.75_-2.25"]
]
从一个字符串,如:
"-9.00_-6.50,-6.00_+6.00(-0.75_-1.25_-1.75_-2.25)(-0.75_-1.25_-1.75_-2.25)"
通过按下一个按钮,所有的字符串之间。我使用这个.match/[^]+/g regex尝试了这个方法,但是这会将所有内容添加到数组中,并且它只是一个类似的数组
[
[
"-9.00_-6.50,-6.00_+6.00",
"-0.75_-1.25_-1.75_-2.25",
"-0.75_-1.25_-1.75_-2.25"
]
]
你能告诉我怎么解决这个问题吗
风险值数据=-9.00-6.50,-6.00-6.00-0.75-1.25-1.75-2.25-0.75-1.25-1.75-2.25;
var dataarr=[];
dataarr.pushdata.match/[^]+/g;
console.logdataarr 您可以对匹配的结果进行切片,用换行符映射字符串,并在数组中获取数组 风险值数据=-9.00-6.50,-6.00+6.00-0.75-1.25-1.75-2.25-0.75-1.25-1.75-2.25, 结果=数据 .match/[^]+/g .1 .maps=>[s];
console.logresult 您可以对匹配的结果进行切片,用换行符映射字符串,并在数组中获取数组 风险值数据=-9.00-6.50,-6.00+6.00-0.75-1.25-1.75-2.25-0.75-1.25-1.75-2.25, 结果=数据 .match/[^]+/g .1 .maps=>[s]; console.logresult 您可能不需要拆分、映射循环。您只能使用正则表达式来执行此操作。只需创建一个匹配所有函数
function matchAll(re, str) {
let result = [];
let m = null;
do {
m = re.exec(str);
if (m) {
result.push(m[1]);
}
} while (m);
return result;
}
函数匹配{
让结果=[];
设m=null;
做{
m=re.execstr;
如果m{
结果:pushm[1];
}
}m;
返回结果;
}
常数s=
-9.00_-6.50,-6.00_+6.00-0.75_-1.25_-1.75_-2.25-0.75_-1.25_-1.75_-2.25;
常数re=/\.+?\/g;
console.logmatchAllre,s 您可能不需要拆分、映射循环。您只能使用正则表达式来执行此操作。只需创建一个匹配所有函数
function matchAll(re, str) {
let result = [];
let m = null;
do {
m = re.exec(str);
if (m) {
result.push(m[1]);
}
} while (m);
return result;
}
函数匹配{
让结果=[];
设m=null;
做{
m=re.execstr;
如果m{
结果:pushm[1];
}
}m;
返回结果;
}
常数s=
-9.00_-6.50,-6.00_+6.00-0.75_-1.25_-1.75_-2.25-0.75_-1.25_-1.75_-2.25;
常数re=/\.+?\/g;
console.logmatchAllre,s;匹配?检查我的答案!您可以使用正则表达式来解决问题。@xdeepakv,在提交答案时,SO会通知OP,因此您的评论是多余的。此外,所有答案都使用正则表达式。匹配?检查我的答案!您可以使用正则表达式来解决问题。@xdeepakv,在提交答案时,SO会通知OP,因此您的评论是多余的。此外,所有答案都使用正则表达式。