¿Por qué no puedo convertir este arr
let stringarr = "[2022/07/12, 2022/08/09]"a este arr
let arr = JSON.parse(stringarr) ---> errorToken inesperado/en JSON en la posición 5
No es JSON válido, ya que los elementos de la matriz no están entrecomillados.
Si todos los elementos de la matriz son fechas formateadas de esa manera, puede usar una expresión regular para extraerlas.
let stringarr = "[2022/07/12, 2022/08/09]" let dates = stringarr.match(/\d{4}\/\d{2}\/\d{2}/g); console.log(dates);Es demasiado simple 😄.
Como su entrada es una matriz válida en formato de cadena. Por lo tanto, elimine los corchetes [] y sepárelos con una coma (,). Luego genera automáticamente una matriz.
let stringarr = "[2022/07/12, 2022/08/09]"; let arr = stringarr.replace(/(\[|\])/g, '').split(',');Producción:
['2022/07/12', ' 2022/08/09']¿Qué puedo hacer entonces para convertirlo en una matriz?
Hay varias formas de hacerlo, si el formato de la cadena se mantiene así. Aquí hay una idea.
console.log(`[2022/07/12, 2022/08/09]` .slice(1, -1) .split(`, `));O edite para crear una cadena JSON válida:
const dateArray = JSON.parse( `[2022/07/12, 2022/08/09]` .replace(/\[/, `["`) .replace(/\]/, `"]`) .replace(/, /g, `", "`)); console.log(dateArray); O, de hecho, use el método de match proporcionado por @Barmar .