简体   繁体   English

使用 nodejs 原始标准输入检查输入字符时遇到问题

[英]Trouble with checking for enter character with nodejs raw stdin

I can't check for enter character.我无法检查enter字符。 I tried to use if (key.charCodeAt(0) === 13) console.log('ENTER');我尝试使用if (key.charCodeAt(0) === 13) console.log('ENTER'); after I saw a same problem with backspace and it works for me, but I could not understand what is wrong with unicode of enter ?在我看到退格的相同问题并且它对我有用之后,但我不明白enter unicode 有什么问题? because backspace , space and ctrl-c works perfectly.因为backspacespacectrl-c完美地工作。 I also tried \ and \ and they also didn't work.我也试过\\ ,但它们也没有用。

console.clear();

var BACKSPACE = '\u0008';
var CTRL_C = '\u0003';
var ENTER = '\u2386';
var SPACE = '\u0020';

var stdin = process.stdin;

stdin.setEncoding('utf8');

stdin.on('data', (key) => {

    if (key === 'q') process.exit();

    if (key === ENTER) console.log('ENTER');

});

stdin.setRawMode(true);

事实证明,问题是我认为enter键表示为 '\\n' 符号,但是正确的符号是 '\\r',它的 Unicode 值为 '\ '

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM