Tengo una cadena de la que quiero eliminar los últimos paréntesis "(bob)". Hasta ahora uso este código para devolver el valor dentro de estos paréntesis:
const str = "Hello my name is (john) (doe) (bob)"; const result = str.split('(').pop().split(')')[0]; console.log(result);¿Cómo podría devolver la cadena sin estos últimos paréntesis?
const str = 'Hello my name is (john) (doe) (bob)'; const lastIdxS = str.lastIndexOf('('); console.log(str.slice(0, lastIdxS).trim());Fuente: Cómo eliminar la última palabra en una cadena usando JavaScript
Posiblemente no sea la solución más limpia, pero si siempre desea eliminar el texto detrás de los últimos paréntesis, funcionará.
var str = "Hello my name is (john) (doe) (bob)"; var lastIndex = str.lastIndexOf("("); str = str.substring(0, lastIndex); console.log(str);Puede hacer coincidir la última aparición del paréntesis y reemplazarla con el grupo de captura 1 que contiene todo lo que viene antes:
^(.*)\([^()]*\)