簡體   English   中英

對於字符串中的每個字母,請打印其ASCII字符表示形式

[英]For every letter in a string, print its ascii character representation

我正在從套接字中讀取內容,並嘗試調試一些傳入的消息。現在,我正在嘗試查看是否有任何“不可見的”字母潛入我的正則表達式中。 我執行以下操作以獲取文字字符串值。

socket.on('data', function (data) {
  const message = data.toString('ascii');
  let characters = [];
  message.forEach((letter, i) => characters.push(message.charCodeAt(i)));
  console.log(characters);
});

結果看起來像這樣:

[58, 13, 10, 26]

我想讓人們更容易理解,而無需(手動)查找ascii表上的每個字母。 也就是說,列表看起來更像這樣:

[':', '\r', '\n', 'ctrl-z']
// or
[':', 'carriage return', 'new line', 'substitution']

有什么方法可以通過Node.js做到這一點嗎?

在節點5.1中,您可以將字符串拆分為一個字符數組,然后console.log該數組。 內置的console.log將為非打印字符打印轉義碼:

socket.on('data', function(data){
    const message = data.toString('ascii');
    console.log(message.split(''))
})

如果使用的是較低版本的node,則可以使用node中的util包來獲取字符的字符串文字表示形式。

這樣的事情應該起作用:

socket.on('data', function(data){
    const message = data.toString('ascii');
    console.log(message.split('').map(function(c){
        return require('util').inspect(c);
    }))
})

使用message.charAt(i)代替charCodeAt

暫無
暫無

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

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