[英]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已經具有使用該名稱的自己的函數。
輸出是什么:
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.