He buscado problemas similares pero no he encontrado solución.
const keyword = "test(" db.auto_complete.find({keyword:{$regex: new Reg Exp('^'+keyword) }}) si la palabra clave variable no contiene un ( funciona, pero si la palabra clave variable incluye un ( aparece el error
Expresión regular no válida: /^test(/ : grupo no terminado
¿Cómo resolverlo?
Debe intentar escapar de los paréntesis con \ . De lo contrario, Regex lo interpretará como un operador utilizado para hacer coincidir o agrupar.
const keyword = "test\("