【问题标题】:Select word between two words在两个单词之间选择单词
【发布时间】:2015-09-08 12:30:12
【问题描述】:

如何创建一个函数来选择单词 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 之前的每个单词推到一个数组上。结果一定是这样的:

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

【问题讨论】:

  • 您能否编辑您的问题以包含图像的文本?在这里似乎不需要使用外部图像,最好是整个问题(或答案)是独立的。

标签: javascript arrays jquery-selectors


【解决方案1】:

这里有一个快速的splitreduce

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

结果:

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

演示:JSFiddle

【讨论】:

  • 由于您在最近的另一个答案上做出了努力,而且这不是 FGITW,所以我会在这里投票!旁白:我想轻轻指出“绅士”不是您上一个答案的理想假设,但您删除了帖子:-)
  • @halfer 谢谢!是的,在所有方面都是正确的。 FWIW 当 OP 响应 SQL 查询的错误时,我会回来。最好不要这样回答,此时 cmets 的踪迹对 OP 没有帮助。
  • 向导!非常感谢!非常适合我的需要!
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    尝试使用正则表达式:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 2014-01-26
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      相关资源
      最近更新 更多