Estoy intentando eliminar todo menos un patrón coincidente usando la función javascripts .replace() y expresiones regulares.
Quiero guardar los dígitos del campo "fecha", es decir, 11 10 2021 o 9 10 2021. Esta expresión regular /[\d]{1,2} [0-9]{2} [0-9]{4}/g coincide con los patrones de fecha, sin embargo, cuando se usa .replace(regex, '') reemplaza esos dígitos en lugar de guardarlos. Me pregunto cómo "invertir" el patrón para guardar los dígitos y reemplazar todo lo demás.
Cadenas de ejemplo:
SURVEY API RESULT LANDING: [{"_id":"616392e41a03eed562de2e8a", "userId":"email@gmail.com", "date":"11 10 2021", "timeStamp":"2:26:", "formResponse":"Survey completed"}] [{"_id":"616392e41a03eed562de2e8a", "userId":"email@gmail.com", "date":"9 10 2021", "timeStamp":"2:26:", "formResponse":"Survey completed"}]Use regex exec o string matchAll en lugar de string replace
const regex = /[\d]{1,2} [\d]{2} [\d]{4}/g; const str = `SURVEY API RESULT LANDING: [{"_id":"616392e41a03eed562de2e8a", "userId":"email@gmail.com", "date":"11 10 2021", "timeStamp":"2:26:", "formResponse":"Survey completed"}] [{"_id":"616392e41a03eed562de2e8a", "userId":"email@gmail.com", "date":"9 10 2021", "timeStamp":"2:26:", "formResponse":"Survey completed"}]`; let match; while(match = regex.exec(str)) { console.log(match[0]); } const iterator = `SURVEY API RESULT LANDING: [{"_id":"616392e41a03eed562de2e8a", "userId":"email@gmail.com", "date":"12 10 2021", "timeStamp":"2:26:", "formResponse":"Survey completed"}] [{"_id":"616392e41a03eed562de2e8a", "userId":"email@gmail.com", "date":"9 10 2021", "timeStamp":"2:26:", "formResponse":"Survey completed"}]`.matchAll(/[\d]{1,2} [\d]{2} [\d]{4}/g); console.log(Array.from(iterator).map(m => m[0]));Para encontrar una sola fecha, intente lo siguiente
`[{"_id":"616392e41a03eed562de2e8a", "userId":"email@gmail.com", "date":"9 10 2021", "timeStamp":"2:26:", "formResponse":"Survey completed"}]`.replace(/.*([\d]{1,2} [0-9]{2} [0-9]{4}).*/gms, "$1");Referencia RegExp https://javascript.info/regexp-introduction