Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вывести текст от определенного символа до пробела (https://javascript.ru/forum/dom-window/22889-vyvesti-tekst-ot-opredelennogo-simvola-do-probela.html)

vanicon 04.11.2011 11:58

Вывести текст от определенного символа до пробела
 
Есть текст такого типа:
Код:

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

И мне нужно вытянуть из этого текста слова, которые начинаются с символа @ и заканчиваются пробелом.
То есть из приведенного выше текста должно получиться два слова:
@событием и @mouseout, еще желательно загнать полученные сова в массив, чтобы было удобнее его потом обрабатывать.

ksa 04.11.2011 12:34

Цитата:

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

Да простят меня знатоки регулярок... :D Предложу такой вариант

var val='Связывает функцию с @событием mouseout для каждого элемента набора. Событие @mouseout обычно вызывается, когда указатель мыши выходит за пределы элемента.'
var a=val.match(/(@\W*\s)|(@\w*\s)/g)
alert(a.join())

vanicon 04.11.2011 13:52

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

trikadin 04.11.2011 14:21

М?

str="Связывает функцию с событием mouseout для каждого @элемента набора. Событие mouseout обычно вызывается, когда указатель мыши выходит за пределы элемента."
arr= str.match(/@\S*/g);
alert(arr)

ksa 04.11.2011 17:52

Цитата:

Сообщение от vanicon
Все прекрасно работает, кроме одного если @ поставить перед элемента набора

Ты бы хоть пример мой использовал для того, чтобы показать что тебя не устраивает... Поскольку я из твоего "объяснения" ничего не понял. :D

ksa 04.11.2011 17:54

Цитата:

Сообщение от trikadin
М?

Конечно так лучше... :yes:

melky 04.11.2011 19:21

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

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

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

alert(matches);




Цитата:

Сообщение от trikadin (Сообщение 134445)
/@\S*/g;

от собаки до любого символа, кроме пробела, которого может и не быть?

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

vanicon 04.11.2011 19:42

Всем спасибо за скорую помощь, в решении моей проблемы, вариант trikadin как раз то что нужно, та как между собакой и словом пробела не будет...

trikadin 05.11.2011 00:32

Цитата:

Сообщение от melky
от собаки до любого символа, кроме пробела, которого может и не быть?

Не совсем правильно понял... Оно хавает все непробельные символы, начиная от собаки.


Часовой пояс GMT +3, время: 05:15.