2015-06-22 179 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

这里有一个快速splitreduce

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

结果:

[ “Greili”, “ToneBob”, “hela222”, “NovaSplitz”]

演示:JSFiddle

+0

既然你在最近的另一个答案上做了一个努力,而这不是一个FGITW,我会在这里赞成!除此之外:我想温和地指出,“绅士”并不是你最后回答的理想假设,但是你删除了帖子':-)'。 – halfer

+1

@halfer谢谢!而且,对所有帐户都是正确的。 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); 

你需要为每个评论字符串做一个循环。

相关问题