Estoy tratando de evaluar una función en una cadena como esta resin(8)
entonces si tengo este texto 3*(resin(4)-sin(12))
Necesito evaluar resin(1) para que reemplace eso mientras ocurre con el resultado que debería verse como 392.9
estoy usando esto
result = result.replace(/(?<={resin\()(.*?)(?=\)})/, x => parseInt(392.9 * x)) pero lo necesito para reemplazar la resin( parte y el ) paréntesis de cierre.
¿Hay alguna magia de expresiones regulares que pueda usar?
¿Está seguro de que necesita una mirada positiva hacia atrás y hacia adelante?
En mi opinión, cuando se usa un sustituto de expresiones regulares, como lo hizo usted, la agrupación es más que suficiente para realizar la tarea:
result = result.replace(/resin\((\d+\.?\d*)\)/g, (_, x) => parseInt(392.9 * parseFloat(x))) Editar: acabo de leer en su pregunta que necesita resin(1) para ser reemplazado por 392.9 , pero en su fragmento usó parseInt y lo mantuve en mi ejemplo. Simplemente suelte el parseInt en caso de que no necesite que el resultado sea un número entero