Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.11.2011, 11:58
Интересующийся
Отправить личное сообщение для vanicon Посмотреть профиль Найти все сообщения от vanicon
 
Регистрация: 17.01.2010
Сообщений: 15

Вывести текст от определенного символа до пробела
Есть текст такого типа:
Код:
Связывает функцию с @событием mouseout для каждого элемента набора.
Событие @mouseout обычно вызывается, когда указатель мыши выходит
 за пределы элемента.
И мне нужно вытянуть из этого текста слова, которые начинаются с символа @ и заканчиваются пробелом.
То есть из приведенного выше текста должно получиться два слова:
@событием и @mouseout, еще желательно загнать полученные сова в массив, чтобы было удобнее его потом обрабатывать.
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2011, 12:34
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от vanicon
из приведенного выше текста должно получиться два слова:
@событием и @mouseout
Да простят меня знатоки регулярок... Предложу такой вариант

var val='Связывает функцию с @событием mouseout для каждого элемента набора. Событие @mouseout обычно вызывается, когда указатель мыши выходит за пределы элемента.'
var a=val.match(/(@\W*\s)|(@\w*\s)/g)
alert(a.join())
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2011, 13:52
Интересующийся
Отправить личное сообщение для vanicon Посмотреть профиль Найти все сообщения от vanicon
 
Регистрация: 17.01.2010
Сообщений: 15

Все прекрасно работает, кроме одного если @ поставить перед элемента набора, то есть текст уже будет иметь такой вид:
Связывает функцию с событием mouseout для каждого @элемента набора. Событие mouseout обычно вызывается, когда указатель мыши выходит за пределы элемента.
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2011, 14:21
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

М?

str="Связывает функцию с событием mouseout для каждого @элемента набора. Событие mouseout обычно вызывается, когда указатель мыши выходит за пределы элемента."
arr= str.match(/@\S*/g);
alert(arr)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2011, 17:52
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от vanicon
Все прекрасно работает, кроме одного если @ поставить перед элемента набора
Ты бы хоть пример мой использовал для того, чтобы показать что тебя не устраивает... Поскольку я из твоего "объяснения" ничего не понял.
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2011, 17:54
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от trikadin
М?
Конечно так лучше...
Ответить с цитированием
  #7 (permalink)  
Старый 04.11.2011, 19:21
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

берёт от символа собаки до символа, не входящего в английский или русской алфавит.

пробел, перевод строки, дефис, цифра...
var str = 'Связывает функцию с @событием mouseout для каждого элемента набора. Событие @mouseout обычно вызывается, когда указатель мыши выходит за пределы элемента.';

var matches = str.match(/@[\wа-я]+/gi);

alert(matches);




Сообщение от trikadin Посмотреть сообщение
/@\S*/g;
от собаки до любого символа, кроме пробела, которого может и не быть?

str=" lol @ ...";
arr= str.match(/@\S*/g);
alert(arr)

Последний раз редактировалось melky, 04.11.2011 в 19:27.
Ответить с цитированием
  #8 (permalink)  
Старый 04.11.2011, 19:42
Интересующийся
Отправить личное сообщение для vanicon Посмотреть профиль Найти все сообщения от vanicon
 
Регистрация: 17.01.2010
Сообщений: 15

Всем спасибо за скорую помощь, в решении моей проблемы, вариант trikadin как раз то что нужно, та как между собакой и словом пробела не будет...
Ответить с цитированием
  #9 (permalink)  
Старый 05.11.2011, 00:32
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от melky
от собаки до любого символа, кроме пробела, которого может и не быть?
Не совсем правильно понял... Оно хавает все непробельные символы, начиная от собаки.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
lastChild работает в IE, как тут быть? Puaris83 Firefox/Mozilla 4 17.04.2010 23:56
Вопрос по относительному позиционированию DIV XPOMOB (X)HTML/CSS 11 15.07.2009 17:02