2010-11-07 8 views
7

probablemente estoy haciendo algo muy estúpido, pero no consigo siguiente expresión regular para trabajar en Javascript:final partido de la línea de expresiones regulares javascript

pathCode.replace(new RegExp("\/\/.*$","g"), ""); 

Quiero eliminar // más todo después de las 2 barras.

+0

problema es con pathCode ser de varias líneas. Esperaba que $ coincidiera en nueva línea (\ n), con el indicador g establecido. Entonces mi pregunta es: –

+0

¿Cómo puedo eliminar los comentarios de cada línea separada por una nueva línea (incluida la última línea, que opcionalmente no termina con una nueva línea)? –

Respuesta

10

parece funcionar para mí:

var str = "something //here is something more"; 
console.log(str.replace(new RegExp("\/\/.*$","g"), "")); 
// console.log(str.replace(/\/\/.*$/g, "")); will also work 

También tenga en cuenta que la expresión regular-literal /\/\/.*$/g es equivalente a la expresión regular generada por el uso del objeto RegExp. En este caso, usar el literal es menos detallado y podría ser preferible.

¿Está reasignando el valor de retorno de replace al pathCode?

pathCode = pathCode.replace(new RegExp("\/\/.*$","g"), ""); 

replace no modifica el objeto de cadena que funciona en. En cambio, devuelve un valor.

+0

El problema fue con el modo multilínea, el interruptor m hizo el truco en este caso. ¡Gracias por su tiempo a todos! –

+0

No he visto sus comentarios hasta ahora. Pero sí, el conmutador 'm' te permite combinar en modo multilínea :) –

2

Esto funciona muy bien para mí:

var str = "abc//test"; 
str = str.replace(/\/\/.*$/g, ''); 

alert(str); // alerts abc 
1
a = a.replace(/\/\/.*$/, ""); 
Cuestiones relacionadas