Вход

Просмотр полной версии : Вывести текст от определенного символа до пробела


vanicon
04.11.2011, 11:58
Есть текст такого типа:
Связывает функцию с @событием mouseout для каждого элемента набора.
Событие @mouseout обычно вызывается, когда указатель мыши выходит
за пределы элемента.
И мне нужно вытянуть из этого текста слова, которые начинаются с символа @ и заканчиваются пробелом.
То есть из приведенного выше текста должно получиться два слова:
@событием и @mouseout, еще желательно загнать полученные сова в массив, чтобы было удобнее его потом обрабатывать.

ksa
04.11.2011, 12:34
из приведенного выше текста должно получиться два слова:
@событием и @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
Все прекрасно работает, кроме одного если @ поставить перед элемента набора
Ты бы хоть пример мой использовал для того, чтобы показать что тебя не устраивает... Поскольку я из твоего "объяснения" ничего не понял. :D

ksa
04.11.2011, 17:54
М?
Конечно так лучше... :yes:

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

пробел, перевод строки, дефис, цифра...

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

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

alert(matches);






/@\S*/g;

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


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

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

trikadin
05.11.2011, 00:32
от собаки до любого символа, кроме пробела, которого может и не быть?
Не совсем правильно понял... Оно хавает все непробельные символы, начиная от собаки.