2011-05-04 29 views
6

Digamos que tengo de texto (no HTML), que estoy tirando de un área de texto. Parece que:Javascript - string.replace() texto que abarca múltiples líneas?

ALTER LOGIN [user1] DISABLE 

GO 

~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~ 

~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~ 

~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~ 


ALTER LOGIN [user2] DISABLE 

GO 

~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~ 

~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~ 

~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~ 

Estoy tratando de eliminar de ALTER a GO para cada usuario. Con replace(), puedo sustituir a partir de ALTER en DISABLE, pero no puedo encontrar la manera para que coincida con todo el camino a seguir (que está en la siguiente línea), de manera que se elimina todo el trozo. ¿Pensamientos?

+0

tenían se tiene en cuenta la sustitución del texto usando expresiones regulares? –

+0

Soy bastante horrible con Regx, definitivamente algo en lo que necesito trabajar. Gracias por la respuesta Alex! – mike

Respuesta

17

. en una expresión regular coincide con cada carácter excepto\n. En algunos sabores de expresiones regulares, puede añadir la bandera s para que coincida con ellos, pero no en Javascript.

su lugar, puede utilizar la clase [\s\S] carácter, que coincide con todos los espacios y todos los espacios en blanco no, que lo es todo. El ? después * significa que no va a ser codicioso, de lo contrario será partido entre el primero y el último ALTERGO.

str = str.replace(/ALTER[\s\S]*?GO/g, ''); 

jsFiddle.

Cuestiones relacionadas