2011-08-16 50 views
5

我有以下的Node.js代碼:的NodeJS:字符串操作

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); 
    }); 

但SUBSTR似乎沒有工作!

如何獲得node.js中字符串的子字符串?

提前許多感謝,

+0

其probablye'DJBHash'失敗 – Raynos

+0

我評論了這條線......下一行現在失敗... – Eamorr

+0

嘗試'Object.prototype.toString.call(responseData)' – Raynos

回答

13

變量數據類型的緩衝器,就必須創建具有toString方法的字符串,然後,你就可以做SUBSTR。類似的東西會工作:

responseData.toString().substr(1) 

欲瞭解更多信息請參閱以下鏈接:

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

+0

嗨,那工作得很好。我想知道如何從字符串返回到「responseData」的類型? – Eamorr

+1

根據文檔:'新的緩衝區(myStr)'將它做到http://nodejs.org/docs/v0.4.10/api/buffers.html#new_Buffer –

+0

所以它的確如此! Woop woop!非常感謝。我在谷歌上找不到任何東西... – Eamorr