2011-08-16 14 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

私はその行をコメントアウト – Raynos

+0

を失敗したそのprobablye 'DJBHash'を...次の行は現在失敗しています... – 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

ドキュメンテーションによると、 'new Buffer(myStr)'はそれを行いますhttp://nodejs.org/docs/v0.4.10/api/buffers.html#new_Buffer –

+0

そしてそうです! Woop woop!どうもありがとう。私はGoogleで何も見つけられませんでした... – Eamorr