Javascript - вырезать часть строки

Здравствуйте все,

Я пытаюсь найти лучший способ вырезать определенные части строки ввода ниже. Я использую пробел (' ') в качестве разделителя. Но я не могу вырезать необходимые части и назначить их в соответствующие переменные.

var input = "/w user1 message"

var user = input.substring(2, input.indexOf(' '));?? 
var message = ???

ожидаемый результат:

user = "user1"
message = "message"

Это работает только тогда, когда пустые места заменяются комой или любым другим разделителем.

Есть ли конкретная причина, почему он не работает с пробелами?

Заранее спасибо Алекс

3 ответа

Решение

Я бы порекомендовал использовать split, он создает массив, и вы можете просто получить доступ к массиву по индексу

http://jsfiddle.net/PJH28/

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"}

Теперь это должно быть намного проще в использовании с другими вещами

Другие вопросы по тегам