2015-09-01 2 views
2

У меня есть текстовое поле, в котором вы можете ввести сообщение. После ввода «@» сообщения должны быть разделены на пробелы. Поместив все слова в массив, я хотел бы найти массив для таких слов: @person1, @person2.Сплит-строка на пробелах

Но первая часть уже идет не так.

Я пробовал его с помощью следующего кода, но массив всегда кажется пустым.

$("textarea.autocomplete-pt").keypress(function(e) { 
    if (e.which == 64) { 
     var string = $(".autocomplete-pt").text(), 
      array = string.split(/ +/); 
     console.log(array); 
    } 
}); 

Что я делаю неправильно?

Вот jsfiddle

+1

Используйте '\ s' для пробелов,' array = string.split (/ \ s + /); ' – Tushar

+0

@Tushar: Я добавил jsfiddle сейчас :) Это работает. Комбинация вашего решения и ответ Адриано Репетти выполнили эту работу. –

+0

Check [Demo] (http://jsfiddle.net/tusharj/2ryab0po/1/) – Tushar

ответ

3

Чтобы прочитать содержание input и textarea вы должны использовать val() вместо text(). Обратитесь к JQuery документации для получения более подробной информации, но код должен быть таким:

$("textarea.autocomplete-pt").keypress(function(e) { 
    if (e.which == 64) { 
     var string = $(".autocomplete-pt").val().trim(); 
     var array = string.split(/\s+/); 
     console.log(array); 
    } 
}); 

Как Tushar уже предложил в комментариях это также лучше использовать \s+ вместо  , чтобы соответствовать пространства, поскольку она также обрабатывает множественные пробелы и другие типы пространств (вкладки, короткие и длинные пробелы и т. д., это особенно полезно, если пользователи будут вставлять текст, скопированный с другой страницы, или у них есть символы двойной/одиночной ширины на японском языке).

+0

Вы должны использовать '\ s +' для разделения по пробелам в regex – Tushar

+0

@Tushar Согласен, добавлено. –

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