Обрезка новых строк из promt.get в javascript

1

Так что я нахожусь в консоли (конечно, распутинский lite, но я думаю, что это не имеет значения). И я прошу пользователя моей js-программы указать некоторые данные (имя, дата рождения и т.д.). Эти данные затем переносятся на программу python.

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

Этот мой код: Как вы можете видеть, я уже пытался заменить новые строки, что не работает.

prompt.get(['name', 'date_start', 'date_end'], function (err, result) {
    if (err) {
            return onErr(err);
    };

    console.log('Command-line input received:');
    console.log('  Name ' + result.name);
    console.log('  Start date:  ' + result.date_start);
    console.log('  End date:  ' + result.date_end);

    var PythonShell = require('python-shell');
    var pyshell = new PythonShell('new_try_crypto.py');

    pyshell.send(result.name.replace('\n', ''));
    pyshell.send(result.date_start.replace('\n', ''))
    pyshell.send(result.date_end.replace('\n', ''))
  • 2
    String.prototype.trim . Хотя, поскольку вы передаете материал в оболочку Python, возможно, что новые строки добавляются в саму оболочку ...
  • 0
    @JaredSmith Действительно, также возможно, что они важны или необходимы (зная, как работают оболочки).
Показать ещё 1 комментарий
Теги:
raspbian

1 ответ

1
Лучший ответ

Используйте .trim():

prompt.get(['name', 'date_start', 'date_end'], function (err, result) {
    if (err) {
            return onErr(err);
    };

    console.log('Command-line input received:');
    console.log('  Name ' + result.name);
    console.log('  Start date:  ' + result.date_start);
    console.log('  End date:  ' + result.date_end);

    var PythonShell = require('python-shell');
    var pyshell = new PythonShell('new_try_crypto.py');

    pyshell.send(result.name.trim());
    pyshell.send(result.date_start.trim())
    pyshell.send(result.date_end.trim())
};
  • 0
    Я уже пробовал обрезать; все еще \ n's появляются
  • 0
    В этом случае комментарий Джареда, скорее всего, правильный: они, вероятно, исходят из самой оболочки, что неудивительно, поскольку переводы строк часто используются для обозначения конца ввода / вывода.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню