2017-01-15 9 views
0

Я изучаю javascript & Node.js. По какой-то причине это IF заявление не работает, как я бы ожидал ...
Я не могу понять, как решить эту проблему ...Node.js если инструкция не работает как ожидалось

Мой код:

process.stdin.setEncoding('utf8');      //Set UTF charcode 

process.stdin.on('readable',() => {     //Event fires when there's input 
    var readConsole = process.stdin.read();    //Receive the input from console 

    if(readConsole != null) { 
     readConsole.trim().replace(/\r?\n|\r/g, " "); //Trim input and remove line breaks 

     process.stdout.write('Input: ' + readConsole); //Output the input 

     if(readConsole == "quit") { 
      process.exit(); 
     } 
    } 
}); 

Но для некоторых Причина: всякий раз, когда я набираю «quit» в консоли, он не отвечает.

Вот изображение задачи:

enter image description here

+0

Какое ожидаемое поведение? –

+0

Рассмотрите возможность использования '===' вместо '=='. –

+0

@Joe белый; почему мне нужно использовать 3 равных? Я думал, что 1 для установки переменных, 2 был для операторов и т. Д. И 3 для операторов if с истинным или ложным? Разве это не так? –

ответ

4

Оба trim() и replace() возвращает новую строку, но не назначает это значение любого переменный. Вероятно, вы хотите удалить лишние символы, а не заменять их пробелами (спасибо @fvgs). Попытка:

readConsole = readConsole.trim().replace(/\r?\n|\r/g, ""); 
+0

Строка замены должна, вероятно, быть '' '', иначе условие в операторе if должно быть 'readConsole ==" quit "'. – fvgs

+0

Owh, я сделал это сначала. но удаление пробелов проработало так тоже .... В любом случае, спасибо человеку 10/10 !! –

Смежные вопросы