Quiero eliminar los siguientes caracteres: [ , ] , " , \ si alguno está al principio o al final de una cadena, pero no si está en el medio.
Entonces, si la cadena es ""\[\]][hello" world "\[\"]] , me gustaría que se convierta en hello" world
No puedo averiguar cómo hacerlo. He probado estos y muchos otros y ninguno parece funcionar:
string.replace(/^[\[+|\]+|\"+|\\+]$,"") string.replace(/^[\[+\]+\"+\\+]$/,"")Cualquier ayuda sería muy apreciada.
Estás cerca. Necesitas dos alternativas, una para el principio y otra para el final. Cada uno debe ser un conjunto de caracteres en [] que enumera todos los caracteres que desea eliminar.
También necesita el modificador g para reemplazar dos veces en la misma cadena.
let string = '""\[\]][hello" world "\[\"]]'; console.log(string.replace(/^["\[\]\\]+|["\[\]\\]+$/g, ''));Divido el problema en los siguientes subproblemas:
Se me ocurrieron los siguientes patrones de expresiones regulares para resolver estos:
Cuando trabaje con expresiones regulares, recomiendo el siguiente sitio: regexr.com/6d193