簡體   English   中英

將數組的字符串轉換為數組js

[英]Convert a string of an array to an array js

為什么我不能轉換這個 arr

let stringarr = "[2022/07/12, 2022/08/09]"

到這個arr

let arr = JSON.parse(stringarr) ---> error

意外的令牌 / 在 JSON 中的位置 5

它不是有效的 JSON,因為沒有引用數組元素。

如果數組元素都是這樣格式化的日期,您可以使用正則表達式來提取它們。

 let stringarr = "[2022/07/12, 2022/08/09]" let dates = stringarr.match(/\d{4}\/\d{2}\/\d{2}/g); console.log(dates);

然后我該怎么做才能將其轉換為數組

如果字符串的格式保持這樣,有幾種方法可以做到這一點。 這是一個想法。

 console.log(`[2022/07/12, 2022/08/09]` .slice(1, -1) .split(`, `));

或編輯以創建有效的 JSON 字符串:

 const dateArray = JSON.parse( `[2022/07/12, 2022/08/09]` .replace(/\[/, `["`) .replace(/\]/, `"]`) .replace(/, /g, `", "`)); console.log(dateArray);

或者確實使用@Barmar提供的match方法。

這太簡單了😄。

因為您的輸入是字符串格式的有效數組。 因此,刪除 [ ] 括號並用逗號 (,) 分隔。 然后它會自動生成一個數組。

let stringarr = "[2022/07/12, 2022/08/09]";
let arr = stringarr.replace(/(\[|\])/g, '').split(',');

輸出:

['2022/07/12', ' 2022/08/09']

 const regexp = /\d+\/\d+\/\d+/g; const stringarr = "[2022/07/12, 2022/08/09]"; const arr = [...stringarr.matchAll(regexp)]; console.log(arr)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM