JavaScript / regex: eliminar texto entre paréntesis


93

¿Sería posible cambiar

Hello, this is Mike (example)

a

Hello, this is Mike

usando JavaScript con Regex?

Respuestas:


211
"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, "");

Resultado:

"Hello, this is Mike"

14
tenga en cuenta que .replace () no cambia la cadena en sí, solo devuelve una nueva cadena. Por lo tanto, aún debe configurar la variable para que sea igual a lo que cambió.
Ayub

2
Donde los paréntesis están en el medio de una cadena, la expresión regular de arriba eliminará todos los espacios en blanco alrededor de ellos. Probablemente esto no sea bueno.
Nigel Johnson

1
¿Cómo hacer la inversa de esto? Quiero (example)solamente
Carta

No funciona si tienes algo como: Está un poco desordenado (arriba (derecha)) pero sucede :)
TigrouMeow

27
var str = "Hello, this is Mike (example)";

alert(str.replace(/\s*\(.*?\)\s*/g, ''));

Eso también reemplazará el exceso de espacios en blanco antes y después del paréntesis.


7

Tratar / \([\s\S]*?\)/g

Dónde

(espacio) coincide con el carácter (espacio) literalmente

\(coincide con el personaje (literalmente

[\s\S]coincide con cualquier carácter ( \scoincide con cualquier carácter de espacio en blanco y \Scoincide con cualquier carácter que no sea de espacio en blanco)

*? coincidencias entre cero y tiempos ilimitados

\)coincide con el personaje )literalmente

g partidos a nivel mundial

Ejemplo de código:

var str = "Hello, this is Mike (example)";
str = str.replace(/ \([\s\S]*?\)/g, '');
console.log(str);
.as-console-wrapper {top: 0}


1

Encontré esta versión más adecuada para todos los casos. No elimina todos los espacios en blanco.

Por ejemplo, "a (prueba) b" -> "a b"

"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, " ").trim(); "Hello, this is (example) Mike ".replace(/ *\([^)]*\) */g, " ").trim();


Tenga cuidado trimno es universalmente compatible: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… , al menos no fue en 2015 ... en 2017 se ve mucho mejor.
Christophe Roussy

falla con "esto (ejemplo (aquí) que) no es bueno". es decir. parens anidados!
Marc

1

Si también necesita eliminar texto entre paréntesis anidados, entonces:

        var prevStr;
        do {
            prevStr = str;
            str = str.replace(/\([^\)\(]*\)/, "");
        } while (prevStr != str);
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.