2012-09-03 17 views
32

Javascript'e yeni başlayan ve bir dizenin son karakterini kaldırmak için bir yol arıyorsanız, bir kolon.Javascript: Bir kolonun son satırını kaldır

myString = myString.replace('/^\\:/'); hattının başlangıcı için çalışacağını, ancak çizginin sonuna geçmek için $ karakterinin nasıl değiştirileceğini bilmediğini biliyorum… herhangi birini düzeltebilir mi?

Teşekkür

cevap

61

literal düzenli ifade (/.../) bir dizede olmamalıdır. dizesinin başında iki nokta üst kaldırmak için kodunuzu düzeltme elde edersiniz:

myString = myString.replace(/^\:/, ''); 

dizesinin sonunda iki nokta üst eşleştirmek için, ondan önce yerine ^ ait kolon sonra $ koydu:

myString = myString.replace(/\:$/, ''); 

yapabilirsiniz ayrıca düz dize işlemlerini kullanarak yapın:

if (myString.charAt(myString.length - 1) == ':') { 
    myString = myString.substr(0, myString.length - 1); 
} 
+0

Detaylı cevap için teşekkürler. Yeni gelen biri olarak, ters eğik çizgiyi kaçış karakteri olarak kullanmayı anlıyorum, ancak neden yerine 'replace' ifadesinde bir dizi ileri/ters eğik çizgi var? – neil

+0

@neilf: "/.../" dizeleri normal ifadedir. Düzenli ifadenin içinde, kolon karakterinden kaçmak için bir ters eğik çizgi vardır, bu yüzden, bir tam karakter olarak yorumlanır ve ifadede özel bir anlamı yoktur. (Yukarıdaki kodu düzelttim, bir dize, yani yeni Regex ('^ \\:') 'yerine koymak için kalıptan kaçmak için çift ters eğik çizgi vardı, orijinal kodunuz bir regex değişmezi ile bir regex dizgisi.) – Guffa

+0

/.../ formatının, sadece ters eğik çizginin farkında değildim - açıkladığın için teşekkürler. – neil

16

o

+0

Ah, sonunda vardı ama çok fazla eğik çizgiler ... çok teşekkürler – neil

0

$ ihtiyaçları EOL maç için regex sonunda olmak dizenin sonunda olduğunda : kaldıracak

myString = myString.replace(/:$/, ''); 

bununla sadece deneyin.

/:$/