let result = 'Apple%00Juice%02'; const removeOne = result.slice(5, 8); // get %00 const removeTwo = result.slice(13, 16); // get %02 slice obtiene la parte que quiero eliminar y no la que quiero obtener.
¿Hay alguna función que me permita obtener el result que se convierte en 'Jugo de manzana'?
Puede obtener el resultado deseado usando una expresión regular para que coincida con las partes que desea eliminar de la cadena y luego reemplazarlas usando el método replace() en las cadenas.
const str = "Apple%00Juice%02"; const regex = /%\d+/g; const result = str.replace(regex, " ").trim() console.log(result);Explicación de expresiones regulares:
% - coincide con el carácter % literalmente\d+ - coincide con cualquier dígito del 0 al 9 una o más veces%\d+ - coincide con el carácter % seguido de uno o más dígitosPuede lograr esto usando la función .replace()
Ejemplo:
let result = 'Apple%00Juice%02'; result = result.replace('%00', ' '); result = result.replace('%02', ''); console.log(result); Leer más sobre la función .replace() en MDN Docs
Editar:
Minificando la respuesta de @Yousaf
let result = "Apple%00Juice%02"; result = result.replace(/%\d+/g, " ").trim() console.log(result);Es posible con replace(), pero esa no es una solución sostenible. La codificación de URL "% 00" es el carácter � ASCII. Esto sugiere que la cadena ya se está codificando en el formato de caracteres incorrecto para la URL. Por lo tanto, debe observar el formato de caracteres en el que se lee su base de datos o archivo. por ejemplo UTF-8, ISO 8859-1
Cuando se codifica en el formato de caracteres correcto. ¿Puedes decodificarlo en JavaScript usando el método decodeURIComponent (str)? más sobre esto