使用 string.match 方法的结果填充数组变量

Populating Array Variable with Results of string.match method

提问人:Zach Walsh 提问时间:7/14/2023 更新时间:7/14/2023 访问量:22

问:

我在使用 string.match 方法的结果填充数组时遇到了一些 Javascript 代码的问题。

从本质上讲,我正在尝试从来自另一个应用程序的一段 JSON 中提取字符串数组。我已经验证了匹配方法实际上确实返回了一个有效的数组,并且我的正则表达式是准确的。只有当尝试将这些结果推送到自己的数组时,我似乎才遇到问题。

代码的一般结构如下:

var orgSearchDomain = /*JSON STRING*/;
let orgSearchName = '';
let orgId = 0;
var orgAddresses = [];

if (orgSearchDomain.match(/"item":{"id"/g).length = 1) {

orgId = orgSearchDomain.match(/(?<="id":)\d+/)[0];

}
else if (orgSearchDomain.match(/"item":{"id"/g).length > 1){

orgAddresses = new Array(orgSearchDomain.match(/(?<="address":).+?(? 
=,"visible_to)/g).slice(0));
}

我尝试使用 var 和 let 在 if 块中声明 orgAddresses,但没有成功。使用 var 将声明移到 if 块之外取得了一些进展,代码不再崩溃,但打印 OrgAddresses 的任何属性将显示它仍然是一个长度为 0 的空数组。

我真的不知道我在这里错过了什么。就像我说的,只是打印属性

orgSearchDomain.match(/(?<=“address”:).+?(? =,“visible_to)/g)

将产生正确的结果;似乎有些地方出了问题,分配给新的orgAddresses数组。

任何帮助将不胜感激,如果我可能提供任何其他信息,请告诉我。

JavaScript 数组匹配 assign

评论

2赞 Alexander Nenashev 7/15/2023
使用 JSON.parse,不要尝试正则表达式 JSON
0赞 imvain2 7/15/2023
我建议发布一个 JSON 示例。如果其 JSON 有效,则无需使用正则表达式,可以使用 JSON.parse。
0赞 Zach Walsh 7/15/2023
感谢您到目前为止的回复。我将尝试使用 JSON.parse 并看看我能做什么。
0赞 Zach Walsh 7/15/2023
好吧,所以 JSON.parse 肯定是一些很酷的东西,我不知道它现在给了我另一种方法来做到这一点。但是,如果我尝试在 if 块中声明变量“orgAddresses”,它将产生同样的问题。我想我可以把它放在外面,但我只是不明白 JS 语法在 if 语句中声明变量时会产生什么问题。

答: 暂无答案