eliminar de forma recursiva el patrón "[" y "]" en una cadena usando javascript

Estaba intentando eliminar el patrón "[" o "]" presente en una cadena.

var str = "abc<1<2<>3>4>def";

while (str != (str = str.replace(/<[^<>]*>/g, "")));

usando el código anterior que está eliminando el patrón "<" "<>" ">" cuando trato de reemplazar esto con mis operadores, no funciona.

De cualquier manera, alguien puede proporcionarme una expresión regular o una línea pequeña para reemplazar a todos los operadores presentes.

For ex a= [1[2]3][4
should be after removing 1234
 or
a =1[2]3]
should be after removing 123

preguntado el 08 de noviembre de 11 a las 10:11

3 Respuestas

var str = "abc[1[2[]3]4]def".replace(/\[|\]/g, "");

Su condición while no es necesaria aquí ya que la expresión regular eliminará todas las instancias de [ y ] encuentra debido a la g parámetro global.

respondido 08 nov., 11:14

La condición while de OP elimina el texto adjunto entre [] or <> (reemplazando los corchetes más internos primero y los corchetes más externos al final), no solo quita los corchetes. Si el <> en que mientras que el bucle se reemplaza correctamente con [] luego "abc[1[2[]3]4]def" se convierte en abcdef y no abc1234def. - Narendra Yadala

¿Qué tal solo

s = "[1[2]3][4"
s = s.replace(/[[\]]/g, "")

te da la salida

1234

respondido 08 nov., 11:14

Esto debería funcionar para ti

var str = "abc[1[2[]3]4]def";
while (str != (str = str.replace(/\[[^\[\]]*\]/g, ""))); 

str se convierte en abcdef eliminando de forma recursiva todo el texto adjunto entre []. Esto solo funcionaría si los corchetes están equilibrados.

Puede usar esta expresión regular si necesita eliminar todos los corchetes

var str = str.replace(/]|\[/g, "");

respondido 08 nov., 11:14

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.