如何创建一个函数来选择单词X和Y之间的所有内容并将其推送到数组。
Greili - 4小时40分钟前 #NsShinyGiveaway
0评论ToneBob - 4小时49分钟前 #NsShinyGiveaway
0评论由hela222 - 5小时14分钟前 #NsShinyGiveaway
肯定为什么不呢? XD
0评论由NovaSplitz提供 - 5小时45分钟前 #NsShinyGiveaway享受PokeHeroes伙伴的生活 0评论
鉴于上面的文字,我想把“By”之后和SPACE之前的每个单词推到一个数组上。结果必须是这样的:
const Reflux = require('reflux');
const RecordActions = require('../actions/RecordActions');
/**
* storage for record data
*/
const RecordStore = Reflux.createStore({
// listen for events from RecordActions (Reflux)
listenables: RecordActions,
init: function () {
this.data = {
records: []
};
},
// facilitate initializing component state with store data
getInitialState: function () {
return this.data;
},
/*
* all records
*/
getRecords: function () {
return this.data.records;
},
// handle successful load of records
onLoadCompleted: function (response) {
this.data.records = response;
this.trigger(this.data);
},
// handle failure to load records
onLoadFailed: function (err) {
console.error('Failed to load records', err.toString());
}
});
module.exports = RecordStore;
答案 0 :(得分:2)
var arr = str.split("By ").reduce(function(acc, curr) {
curr && acc.push(curr.split(" ")[0]); return acc;
}, []);
结果:
[" Greili"," ToneBob"," hela222"," NovaSplitz"]
演示:JSFiddle
答案 1 :(得分: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);
答案 2 :(得分:1)
我看到你想要的词永远是第二个词,所以这是解决问题的一种更简单的方法。您可以在每个空格上拆分字符串,然后您有一个单词数组,其中索引1处的单词是您想要的名称。然后将每个名称添加到新数组。
var words = "By Greili ...".split(" ");
var name = words[1]; // "Greili"
var namesArray = [];
namesArray.push(name);
您需要在循环中为每个评论字符串执行此操作。