2010-10-29 19 views
20

olarak değiştirin. Kullanıcı tarafından bir HTML formunda girilen değerdeki tüm noktaları değiştirmeye çalışıyorum. Örneğin '8x30' değerine dönüştürmek için '8.30' girişine ihtiyacım var. Tüm sayıları

Bu basit bir kod vardır:

var value = $(this).val().trim(); // get the value from the form 
value += ''; // force value to string 
value.replace('.', 'x'); 

Ama çalışmıyor. Firebug'da console.log komutunu kullanarak, değiştir komutunun basitçe gerçekleşmediğini görebiliyorum. '8.30' aynı kalıyor.

value.replace(/\./g, 'x'); 

yanlış Burada ne işim:

Ben de daha iyi bir sonuç aşağıdaki regexp çalıştı?

+0

value.replace; doğru ve benim için çalışıyor [firbug konsolunda kontrol ettim ör. "2312.88.12.1232" .replace (/\./ g, 'x'); –

+0

@Chinmayee: Evet, gerçekten çalışıyor. Bart Kiers'ın (aşağıda) işaret ettiği gibi, değişkendeki değeri otomatik olarak güncellemeyeceğini unuttum. – s427

cevap

38

replace bir dize döndürür. Deneyin:

value = value.replace('.', 'x'); // 
            // or 
value = value.replace(/\./g, 'x'); // replaces all '.' 
+0

Bu çok açıktı. ;) Çok teşekkürler. :) – s427

+0

@ s427, rica ederim! :) –

3

Üç çözümler var: ('x' /\./ g)

var text= "ABC.DEF.XYZ"; 
response = text.replace(/\./g,'x'); 


var text= "ABC.DEF.XYZ"; 
response = text.replace(new RegExp("\\.","gm"),"x"); 


var text= "ABC.DEF.XYZ"; 
response = text.split('.').join('x'); 

DEMO in JSFIDDLE