2016-04-07 28 views
1

Şu anda bu genel hata iletisini, daha özel ayrıntılarla değiştirmek istediğim komut dosyasımda buldum.Dize içindeki öğeleri değiştirme

errorMessage: "Your selected file, {{fileName}}, is not a proper format of {{formats}}" 

onlar seçilmiş dosyanın adıyla fileName değiştirmek istiyoruz. Şu ana kadar çalışan ne

Bu

geçerli:
validateError(
    errorMessage.replace(/{{formats}}/, formatArray) 
); 

yüzden çalıştı bu:

validateError(
     errorMessage.replace(/{{formats}}/, formatArray), 
     errorMessage.replace(/{{fileName}}/, inputFile.name) 
    ); 

bu {{fileName}} bu şekilde görünür ve yerini değildir çalıştırdığınızda dosya adı. inputFile, dosya veri bilgisine sahip olan bildirilmiş bir değişkendir, bu yüzden adın var olduğunu biliyorum.

Neyi yanlış yapıyorum veya görüyorum?

+0

'console.log (inputFile.name)' kullanırken inputFile.name yazdırması ne yapar? – compuhosny

+0

@AhmadHosny dosyanın gerçek adı. örnek: starsInSky.doc - bir yöntemde iki değiştirme deyimi olması ile ilgisi olup olmadığını merak ediyorum – 072et

+0

İlk değiştirmenin sonunda doğru bir parantez eksik misiniz? – compuhosny

cevap

2

.replace işlevi, dizgiyi değiştirmez (JavaScript'deki dizeler değişmezdir), ancak yeni bir dizge döndürür. Bu nedenle, sonucu bir değişkene veya .replace numaralı çağrılara kaydedebilirsiniz. Ayrıca, düzenli ifadeyi kullandığınızdan, özel bir karakter olduğu için {'dan kaçınıyorum ya da bunun yerine bir string kullanıyorsunuz. (Özel regex karakterleri kaçan) .replace aramaları

var formatReplaced = errorMessage.replace('{{formats}}', formatArray); 
validateError(formatReplaced.replace('{{fileName}}', inputFile.name)); 

Veya zincirleme:

validateError(errorMessage.replace(/\{\{formats\}\}/, formatArray).replace(/\{\{fileName\}\}/, inputFile.name)); 

Ben de senin değişkenleri daha iyi verilmesi tavsiye ederim (yerine regex bir dizi kullanarak) bir değişkene kaydetme

isimler. formatArray'u okurken, değiştirme işleviyle çalıştığından bahsetmeden önce bir dizi olduğunu varsaydım. userFormat gibi bir şey tavsiye ederim.

+0

Hala {{fileName}} 'değiştirilemiyorum. Sadece sayfada görünecek '{{fileName}} ' – 072et

+0

Neler olabileceğine dair bir fikrim yok. Kod, tarayıcı konsolunda test ederken çalışır. Yayınınızı kullandığınız kodun daha fazlası ile düzenler misiniz? Teşekkür ederim! – hargasinski

+0

Çalışıyor! Ben ('garip çünkü ben inşa ederken şikayet etmedi çünkü garip oldu. Çok teşekkürler! – 072et

İlgili konular