2011-08-16 18 views
5

Aşağıdaki node.js kodu vardır:nodejs: string manipülasyon

conn.on("data",function(x){ 
     var responseData=x; 
     //sys.puts(responseData); 
     sys.puts(responseData.length); 

     var f=50; 
     var N=responseData.length; 
     if(N>f){ 
     var p=Math.floor(N/f); 
     var p_rem=N%f; 

     var hash=""; 
     for(var i=0;i<p;i++){ 
      hash=DJBHash(responseData.substr(f*i,f)); //this line causes program to exit! 
      sys.puts(responseData.substr(f*i,f)+"***"+hash); 
     } 
     } 
     soc.write(x); 
    }); 

Ama substr çalışmak görünmüyor!

node.js'de bir dizenin alt dizelerini nasıl alabilirim?

+0

O hat üzerinden yorumladı – Raynos

+0

başarısız olan probablye 'DJBHash' ... sonraki satır şimdi başarısız oluyor ... – Eamorr

+0

“Object.prototype.toString.call (responseData)” yi deneyin – Raynos

cevap

13

değişken veri türü Tampon taşımaktadır önceden

çok teşekkürler, sen yöntem toString bir dize oluşturması gerekecektir ve o zaman, substr yapmak mümkün olacak. Bunun gibi bir şey çalışır: Daha fazla bilgi için

responseData.toString().substr(1) 

bu bağlantıyı bakın:

http://nodejs.org/docs/v0.4.10/api/buffers.html#buffer.toString

+0

Merhaba, bu gerçekten iyi çalıştı. Merak ediyorum, bir string'ten "responseData" türüne nasıl gidileceğini biliyor musunuz? – Eamorr

+1

Belgelere göre: 'new Buffer (myStr)' http://nodejs.org/docs/v0.4.10/api/buffers.html#new_Buffer –

+0

Bunu yapacak! Woop woop! Çok teşekkürler. Google'da hiç bir şey bulamadım ... – Eamorr