Javascript - вырезать часть строки
Здравствуйте все,
Я пытаюсь найти лучший способ вырезать определенные части строки ввода ниже. Я использую пробел (' ') в качестве разделителя. Но я не могу вырезать необходимые части и назначить их в соответствующие переменные.
var input = "/w user1 message"
var user = input.substring(2, input.indexOf(' '));??
var message = ???
ожидаемый результат:
user = "user1"
message = "message"
Это работает только тогда, когда пустые места заменяются комой или любым другим разделителем.
Есть ли конкретная причина, почему он не работает с пробелами?
Заранее спасибо Алекс
3 ответа
Решение
Я бы порекомендовал использовать split, он создает массив, и вы можете просто получить доступ к массиву по индексу
var input = "/w user1 message"
var inputParts = input.split(' ');
var message = inputParts[2];
console.log(message);
Просто попробуйте с:
var message = input.substr(input.indexOf(' ', input.indexOf(' ') + 1) + 1);
Вы могли бы сделать что-то вроде этого..
// set up
var commands = {
'/w': ['user']
};
//later
var arr = input.split(' '), o = {}, i;
if (arr[0] in commands) {
o.command = arr.shift();
for (i = 0; i < commands[o.command].length; ++i) {
o[commands[o.command][i]] = arr.shift();
}
}
o.message = arr.join(' ');
o;
Тестирование с вашим var input = "/w user1 foo bar baz";
дает мне
Object {command: "/w", user: "user1", message: "foo bar baz"}
Теперь это должно быть намного проще в использовании с другими вещами