繁体   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