簡體   English   中英

JavaScript:在字符串中轉義%d

[英]Javascript: escape %d in string

我在Node.js中有以下代碼:

var str = '',
    ch;

for(/*standard for loop*/){
 // some code ...

 ch = '%' + buffer[i].toString(16);

 str += ch;
} 

現在,當buffer[i].toString(16)返回時,假設d6 ,得到的字符串不包含%d6 ,而是包含NaN6

現在我知道%d用於C的sprinf,但是afaik JavaScript或Node也沒有sprintf或等效功能。

我的字符串中需要%d6 ,那么如何防止JS自動將%d (以及其他對象,如%f )轉換為NaN?

您不能將toString方法用於您自己的目的,因為JS已經具有使用該名稱的自己的函數。

  1. 將firefox更新到最新版本。 另外,請確保您使用的是Firefox。
  2. 我測試了,您的解決方案應該可以工作。 請對所有內容進行Alert()。

輸出是什么:

ch = '%' + buffer[i].toString(16);
alert(ch);
alert(buffer[i]);
alert(buffer[i].toString(16));

如果我們進行快速測試,則該錯誤不在您粘貼的代碼中:

function test()
{
  var stuff = 214;
  var str = '', ch;

  ch = '%' + stuff.toString(16);
  alert(ch);
} 

我們看到實際上要返回的是我們要返回的內容(%d6)。

NaN代表不是數字,您確定緩沖區數組中的數字是數字嗎? 您還在ch上調用其他方法/函數嗎?

我用來打印結果的Node的console.log()-用於輸出的標准功能-表現為printf,並且實際上已記錄在文檔中( http://nodejs.org/docs/v0.4.11/api/stdio.html #console.log )。 愚蠢的我,感謝averyone帶領我提出解決方案。

sys.puts()打印期望的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM