const location = places({ ...this.appKeyId, container: document.querySelector('#location') as HTMLInputElement, });
¿Cómo reemplazo los acentos/diacríticos en lugares de algolia? porque lo que quiero es reemplazar los acentos/diacríticos.
Usando String.prototype.normalize() , puede eliminar los signos diacríticos según sea necesario. Usando su cadena de ejemplo de Vũng Tàu
, la NFD
y la NFKD
eliminaron los signos diacríticos en las siguientes pruebas. Quería ver y mostrar cómo cada paso cambiaba la cadena según la respuesta aceptada en esa pregunta. Teniendo en cuenta la equivalencia canónica (no estoy seguro si esto es un requisito), incluí pruebas para mostrar si cada cambio era equivalente a los demás.
const str = "Vũng Tàu"; const nfdStr = str.normalize("NFD"); const nfcStr = str.normalize("NFC"); const nfkcStr = str.normalize("NFKC"); const nfkdStr = str.normalize("NFKD"); console.log("nfdStr ", nfdStr); console.log("nfcStr ", nfcStr); console.log("nfkcStr ", nfkcStr); console.log("nfkdStr ", nfkdStr); console.log(""); const nfdStr1 = nfdStr.replace(/[\u0300-\u036f]/g, ""); const nfcStr1 = nfcStr.replace(/[\u0300-\u036f]/g, ""); const nfkcStr1 = nfkcStr.replace(/[\u0300-\u036f]/g, ""); const nfkdStr1 = nfkdStr.replace(/[\u0300-\u036f]/g, ""); console.log("nfdStr1 ", nfdStr1); console.log("nfcStr1 ", nfcStr1); console.log("nfkcStr1 ", nfkcStr1); console.log("nfkdStr1 ", nfkdStr1); console.log(""); const nfdStr2 = nfdStr.replace(/\p{Diacritic}/gu, ""); const nfcStr2 = nfcStr.replace(/\p{Diacritic}/gu, ""); const nfkcStr2 = nfkcStr.replace(/\p{Diacritic}/gu, ""); const nfkdStr2 = nfkdStr.replace(/\p{Diacritic}/gu, ""); console.log("nfdStr2 ", nfdStr2); console.log("nfcStr2 ", nfcStr2); console.log("nfkcStr2 ", nfkcStr2); console.log("nfkdStr2 ", nfkdStr2); console.log(""); console.log(nfdStr === nfdStr1, nfdStr == nfdStr2, nfdStr1 === nfdStr2); console.log(nfcStr === nfcStr1, nfcStr == nfcStr2, nfcStr1 === nfcStr2); console.log(nfkcStr === nfkcStr1, nfkcStr == nfkcStr2, nfkcStr1 === nfkcStr2); console.log(nfkdStr === nfkdStr1, nfkdStr == nfkdStr2, nfkdStr1 === nfkdStr2);