2015-06-22 3 views
0

Как создать функцию, которая выбирает все между словами X и Y и подталкивает ее к массиву.Выберите слово между двумя словами

От Greili - 4 часа и 40 минут назад.
# NsShinyGiveaway
0 комментариев

По ToneBob - 4 часа и 49 минут назад.
# NsShinyGiveaway
0 комментариев

По hela222 - 5 часов и 14 минут назад.
# NsShinyGiveaway
уверен, почему нет? XD
0 комментариев

От NovaSplitz - 5 часов и 45 минут назад.
# NsShinyGiveaway Наслаждайтесь жизнью от приятеля PokeHeroes.
0 комментариев

Учитывая выше текст, я хочу, чтобы подтолкнуть каждое слово после «К» и до пространства на массив. Результат должен быть что-то вроде этого:

name[0] = "Greili" 
name[1] = "ToneBob" 
name[2] = "hela222" 
+3

Не могли бы вы отредактировать свой вопрос в том числе e текст изображения? Использование внешнего изображения здесь не представляется необходимым, лучше, когда весь вопрос (или ответ) является самодостаточным. –

ответ

2

Вот быстрый split и reduce:

var arr = str.split("By ").reduce(function(acc, curr) { 
    curr && acc.push(curr.split(" ")[0]); return acc; 
}, []); 

Результат:

[ "Greili", "ToneBob", "hela222", "NovaSplitz"]

Demo : JSFiddle

+0

Так как вы приложили усилия к другому недавнему ответу, и это не FGITW, я буду выше! Кроме того: я хотел нежно отметить, что «джентльмены» не являются идеальным предположением на ваш последний ответ, но вы удалили сообщение ':-)'. – halfer

+1

@halfer спасибо! И yup, правильно по всем счетам. FWIW Я вернусь, когда OP ответит, что ошибка с SQL-запросом. Лучше не отвечать на этот вопрос с помощью комментариев, не помогающих OP в это время. – Drakes

+0

Мастер! Большое спасибо! Работала отлично для моей необходимости! –

1

Попробуйте использовать регулярное выражение:

var regex = /By ([^\s]+)\s/g; 
var s = 'string to search goes here'; 
var names = []; 
var result; 
do { 
    result = regex.exec(s); 
    if (result) { 
     names.push(result[1]); 
    } 
} while (result); 

JSFiddle Example

1

Я вижу слово, которое вы хотите всегда второе слово, так что это легкий путь решения проблемы. Вы можете разбить строку на каждом пространстве, а затем у вас есть массив слов, где слово в индексе 1 - это имя, которое вы хотите. Затем добавьте каждое имя в новый массив.

var words = "By Greili ...".split(" "); 
var name = words[1]; // "Greili" 
var namesArray = []; 
namesArray.push(name); 

Вам нужно будет сделать это для каждой строки комментария в цикле.

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