2015-05-09 31 views
5

Yeni satırları kesime dönüştürmeye çalışıyorum. Ama bir sebepten dolayı bunu işe alamıyorum. Çeşitli testler yaptım ve fonksiyonun yürütüldüğünü biliyorum ve değişkenin fonksiyona geçmesi kesinlikle bir dizgidir. Bunun işe yaramadığı garip. Ben sunucuya göndermeden önce çift hatları kaçan satırları için aynı işlevi kullandığım için. Çok fazla şey denedim ve bunun neden işe yaramadığını anlamıyorum.Yeni satırları sonlandırmaya dönüştürme başarısız.

console.log(ev); 
var parsedJSON = JSON.parse(ev.data); 
console.log('string that goes in function:' + parsedJSON.message); 
//typeof(parsedJSON.message); string 
var bericht = placeBreaks(parsedJSON.message); 
    function placeBreaks(str) { 
     return str.replace(/\r?\n/g, "<br />"); 
    } 
    console.log('string being returned: ' + bericht); 

json: { "tarihi": 1431199838, "name": "Kök", "mesaj": "test \ ntest"}

(endeks): işlevinde gider 167 dize: Test \ ntest

(endeks): 173 placeBreaks return:

+1

; belki \ n bir değişmez ve aslında bir satır sonu değil midir? Js'de olduğu gibi onu bir satır sonu, ama bir tersine ters eğik çizgi ve bir n. – Daedalus

+2

Tarayıcı konsolunda benim için çalıştı, ancak yalnızca '\\ n' olarak değiştirdikten sonra, @Daedalus'ın doğru olduğunu düşünüyorum. – cyk

+1

Yanıt verdiğiniz için teşekkürler, sizden aldığım bilgilerle çalışıyorum. Ve çalışsın, ancak bunu daha fazla açıklayabilecek bir cevabı kabul etmek istiyorum; JS'nin neden bunu gerçek bir dize olarak okuduğuna? Bir dizenin bir dizge olduğu varsayımından geliyordum. JS'yi anthing'i literal olarak bilmiyorum. Thx – DDaems

cevap

0

ntest Test \ çıkışı test\ntest bir hazır "\\n" dize kullanarak, bunun yerine yeni satır sonu, o zaman bunun yerine /\r?\n/g

ait /\\n/g kullanmalıdır
0

Eğer

kullanmak \ r ile \ n yerini alabilir

vim editörü bu deneyin Kodunuz benim için çalışıyor

%s/\\n/\r/gec 
İlgili konular