/ / ¿Cómo puedo eliminar el texto entre paréntesis en una cadena sin usar regex en Javascript? - javascript

¿Cómo puedo eliminar el texto entre paréntesis en una cadena sin usar expresiones regulares en Javascript? - javascript

¿Cómo puedo eliminar cualquier cosa dentro de los corchetes angulares en una cadena sin usando expresiones regulares?

Por ejemplo, tengo la siguiente entrada:

var str = "This <is> some <random> text";

y me gustaría obtener el siguiente resultado:
Este texto

Respuestas

7 para la respuesta № 1

Suponiendo que los corchetes se alinearán como en su ejemplo, podría hacer algo como esto:

str = str.split("(")
.map(function(s) { return s.substring(s.indexOf(")")+1); })
.join("");

Tenga en cuenta que, al eliminar el texto entre paréntesis, le quedan espacios dobles. Esto parece coincidir con su solicitud ya que ambos espacios están fuera de sus corchetes. Podrían eliminarse con .replace(/s+/g, " "), pero eso sería, por supuesto, usar expresiones regulares. Si desea asumir que una palabra entre paréntesis siempre va seguida de un espacio que también debe eliminarse, puede hacer algo como esto:

str = str.split("(")
.map(function(s) {
return s.indexOf(") ") == -1
? s
: s.substring(s.indexOf(") ") + 2);
})
.join("");

En este ejemplo, debe verificar el caso en el que no hay corchetes en la cadena ("This ") No necesitábamos eso antes, ya que siempre solo hacíamos +1, y si indexOf rindió -1, eso simplemente significaría tomar toda la cadena.


2 para la respuesta № 2

¡Qué requisito tan extraño! Esto no usará regexp:

"This (is) some (random) text".split("(").map(function(el) {
var i = el.indexOf(")");
return el = ~i ? el.substr(i) : el;
}).join("("); // This () some () text

1 para la respuesta № 3
var str = "This (is) some (random) text";

while (str.indexOf("(") != -1) {
str = str.substring(0, str.indexOf("(") - 1) + str.substring(str.indexOf(")") + 1);
}
// Output: This some text