2016-04-02 19 views
0

ben regex yerine yapmaya çalışıyorum yerine kaçmayı:JavaScript küresel

referenceNode=referenceNode.replace(/\//g,"\/"); 

Ben mesela \/ için / değiştirmek istiyor. Ancak, regex'teki // javascript'te bir yorum yapar. Bunu nasıl yapabilirim?

/ /g arasına koydum çünkü tüm dizelerde değiştirmek istiyorum. Biri bana yardım edebilir mi?

+0

Bir değişkende '\ /' saklamayı deneyin ve normal ifadeye ekleyin. –

+0

Nasıl ekleyebilirim? Var exp = "\ /" diyemiyorum ve sonra değiştir (/ exp/g, ...): S Herhangi bir fikrin var mı? @noob – PRVS

+0

Neden bu grupları yakalamada regex kullanmayın?/(?: \ /)/g'. Bu, // // bölümünü engelleyecektir. –

cevap

0

kullanılması, bu:

referenceNode=referenceNode.replace(new RegExp("\\/", "g"),"\\/"); 

Not: çift eğik çizgi (\\) bir dizi ilk ters eğik çizgi kaçan içindir.

Başka bir not:new RegExp("\\/","g"), /\//g ile aynı anlama gelir.

+1

Teşekkürler, iyi çalışıyor! :) – PRVS

+1

"Başka bir notunuz" yanlış. 'new RegExp (" \\/")', bir sözdizimi hatası olan '/ \ //' değil '/ \\ // g' ile aynı anlama gelir (ya da daha kesin ifadeyle, regexp değişkenini g '). Ayrıca, lütfen OP'nin gösterdiği regexp'in neden çalışmadığını açıklayın. –

+0

Oh, evet, eğik çizgilerle karıştı: D zaten sabit. Ayrıca açıklama kısmı da düzeltildi. – ForceMagic

2

Düzenli ifadeniz gayet iyi;

referenceNode = referenceNode.replace(/\//g, "\\/"); 

Sen ters eğik çizgi dize belirteç dilbilgisi için meta karakter olduğu için ters eğik çizgi kaçış gerekir: bunun yanlış yedek dizesi var.

+0

Ama ilk ifadede ilk '//' javascript – PRVS

+0

bir yorum yaptı Ve cevap için teşekkürler, bu da yanlış oldu. Ama çözemediğim yorum. – PRVS

+0

@PRVS Sizi temin ederim ki// // 'JavaScript’de yorum yapmıyor. Kesinlikle garanti ederim. Tarayıcı konsolunuza gidin ve '/ \ //. Test (" a/b ")' yazın ve 'true' yazdıracaktır. – Pointy