2010-11-07 17 views
7

Ich bin wahrscheinlich etwas sehr dumm zu tun, aber ich kann nicht folgender regexp in Javascript zu arbeiten:Spiel Zeilenende javascript regex

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

Ich mag // entfernen und alle nach den zwei Schrägstrichen.

+0

Problem ist mit pathCode mehrzeilige zu sein. Ich erwartete, dass $ mit newline (\ n) übereinstimmt, wenn g gesetzt ist. Also meine Frage wird: –

+0

Wie können die Kommentare für jede Zeile durch einen Zeilenumbruch getrennt werden (einschließlich der letzten Zeile, optional nicht mit einer neuen Zeile endet). –

Antwort

10

scheint für mich zu arbeiten:

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

Beachten Sie auch, dass die reguläre Ausdrücke wörtliche /\/\/.*$/g zum regulären Ausdruck durch die Nutzung des RegExp Objekt erzeugt entspricht. In diesem Fall ist die Verwendung des Literals weniger ausführlich und möglicherweise vorzuziehen.

Weisen Sie den Rückgabewert von replace in pathCode neu zu?

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

replace nicht das String-Objekt ändern, dass es funktioniert auf. Stattdessen gibt es einen Wert zurück.

+0

Problem war mit Multiline-Modus, der m-Schalter hat in diesem Fall den Trick gemacht. Danke (alles) für deine Zeit! –

+0

Ihre Kommentare wurden bis jetzt nicht angezeigt. Aber ja, mit dem Schalter "m" können Sie im Multiline-Modus übereinstimmen :) –

2

Dies funktioniert gut für mich:

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

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