对于string中的每个字母,打印其ascii字符表示
我正在从一个套接字读取,并尝试debugging一些正在进入的消息。现在,我试图看看是否有任何“隐形”字母偷偷通过我的正则expression式。 我做了以下为了得到字面值的string。
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中,您可以将string拆分为一个字符数组和console.log数组。 内置的console.log将打印非打印字符的转义码:
socket.on('data', function(data){ const message = data.toString('ascii'); console.log(message.split('')) })
如果您使用较低版本的节点,则可以使用节点中的util包来获取字符的string文字表示。
像这样的东西应该工作:
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
。