选择两个单词之间的单词

时间:2015-06-22 21:46:18

标签: javascript arrays jquery-selectors

如何创建一个函数来选择单词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;

3 个答案:

答案 0 :(得分:2)

此处快速splitreduce

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);

JSFiddle Example

答案 2 :(得分:1)

我看到你想要的词永远是第二个词,所以这是解决问题的一种更简单的方法。您可以在每个空格上拆分字符串,然后您有一个单词数组,其中索引1处的单词是您想要的名称。然后将每个名称添加到新数组。

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

您需要在循环中为每个评论字符串执行此操作。