/ / javascript regex reemplazar no funciona en el camello de apache - javascript, apache-camel, dsl

javascript regex replace no funciona en apache camel - javascript, apache-camel, dsl

Estoy usando apache camel 2.11 y camel-script 2.2 para soporte de javascript con Spring DSL.

Quería hacer un reemplazo de expresiones regulares con grupos, pero eso no parece funcionar en camello.

Ej .: - en una transformada, los siguientes trabajos.

<javaScript>request.body.toString().replace("Y","X")</javaScript>

es decir, cambiar YZ a XZ

Pero lo siguiente no:

<javaScript>request.body.toString().replace("/(Y)(.*)$/g","$1")</javaScript>

es decir. Cambia YZXXX a Y

He probado la expresión regular en sí https://regex101.com/, así que no creo que sea un problema de sintaxis en la expresión regular

Ahora es posible que camel-script solo ofrezca soporte parcial de javascript. Pero no estoy seguro de si ese es el caso. ¿algunas ideas?

Respuestas

1 para la respuesta № 1

Encontré el problema :-)

El problema es: - Estaba asumiendo que Camel javascript puede usar funciones de javascript ... cuando en realidad llama funciones de java.

El cambio del código a la sintaxis java (llamar a la función replaceAll () con la sintaxis java para expresiones regulares) resolvió el problema.


0 para la respuesta № 2

Necesitas usar un regex, no una cadena parece una expresión regular. Comparar:

Incorrecto:

request.body.toString().replace("/(Y)(.*)$/g","$1")

Correcto:

request.body.toString().replace(/(Y)(.*)$/g, "$1")

Dicho esto, la barra invertida en su patrón de reemplazo es superflua. "$1" sería correcto