#javascript
#javascript
Вопрос:
Написать описательный заголовок было непросто, поэтому я подробнее объясню, что я пытаюсь здесь сделать. У меня есть скрипт чата, и на стороне сервера я создаю команды, которые пользователи могут вводить в чат и т. Д. / сообщить имя пользователя причина, Конечно, когда строка поступает на сервер, она выглядит примерно так: «/ сообщить Тиму за злоупотребление чатом» или «/ сообщить Джону, потому что он любит размещать раздражающие ссылки»Я могу захватить / сообщить, имя пользователя и 1-е слово причины, используя следующий код.
var string = MessageString;
var temp = string.split(" ");
var CommandOne = temp[0];
var CommandTwo = temp[1];
var CommandThree = temp[2];
Проблема заключается в последней части строки, как я могу получить все для раздела причины, который находится после 2-го слова в строке? CommandOne покажет / report , CommandTwo покажет имя пользователя, но CommandThree покажет только первое слово по причине, а не всю причину.
Я также пытался использовать следующий код, но не могу заставить его работать правильно.
var original = MessageString;
var result = original.substr(original.indexOf(" ") 1);
var CommandThree = result.substr(result.indexOf(" ", "") 1);
Я просмотрел похожие сообщения здесь, но не смог найти ни одного, который бы это делал.
Ответ №1:
Просто используйте slice
, чтобы получить все оставшиеся слова и объединить их обратно в строку:
var string = MessageString;
var temp = string.split(" ");
var CommandOne = temp[0];
var CommandTwo = temp[1];
var CommandThree = temp.slice(2).join(" ");
Комментарии:
1. все они работали, но не могли нажать решаемую для всех из них, но я благодарен за вашу помощь, ребята, я некоторое время боролся с этим, но отложил это до последнего момента. Мне нравится этот сайт, потрясающий
Ответ №2:
Робин Зигмонд опередил меня. срез — это путь.
const message = '/report Tim for abusing chat';
const words = message.split(' ');
const action = words[0];
const username = words[1];
const reason = words.slice(2).join(' ');
console.log('action:', action);
console.log('username:', username);
console.log('reason:', reason);
Ответ №3:
Вы можете попробовать следующее
var string = MessageString;
var temp = string.split(" ");
var CommandOne = temp.shift();
var CommandTwo = temp.shift();
var CommandThree = temp.join(" ");