tengo esta simple expresión regular para coger el último ejemplo de 'giro a 123' en una forma (no tengo otra expresión regular para el cuerpo principal):Javascript expresiones regulares que no coincida con la última Char en forma
currenttext=currenttext.replace(/([^>])(turn\s+to\s+)(\d+)$/i,"$1<tt ref=\"$3\">$2$3</tt>");
que durante ejemplo sustitutos a su vez a 123 ... con
<tt ref="123">turn to 123</tt>...
... en la entrada de forma viva. Sin embargo, solo funciona si hay algún tipo de carácter después de el número 123, ya sea un retorno de carro o un carácter visible, que no puedo comprender ya que el anclaje $ final del partido claramente no tiene otro carácter antes del patrón de memoria para los dígitos numéricos. Sin un caracter subsiguiente, obtengo este resultado:
<tt ref="12">turn to 12</tt>3
es decir, falla al capturar el último dígito por completo. He intentado poner el $ ancla dentro de los parens de memoria, pero no hizo ninguna diferencia.
¿En qué navegador? Funciona para mí, debajo del nodo, Chromium y Firefox. –
No puedo replicar este comportamiento, funciona en regexr: http://regexr.com?3031a –
No puedo reproducir esto. Ejecutando el siguiente código en una consola javascript '" foo turn to 123 ".replace (/ ([^>]) (turn \ s + to \ s +) (\ d +) $/i," $ 1 $ 2 $ 3"); 'devuelve' "foo pasa al 123" '. Podría publicar el código que está causando el problema. –