Javascript - 按模式将字符串拆分/划分为 N 个部分的简单方法,其中最后一部分是字符串的其余部分

标签 javascript string split

如果我有字符串:

string1 = "1 secondpart this is the third part"
string2 = "14   secondpartagain   third part   again"

我想通过一个模式(如空格)将它们分成 N 个部分(如 3 个部分),那么结果应该是这样的:

part1: "1", part2: "secondpart", part3: "this is the third part"
  -and
part1: "14", part2: "secondpartagain", part3: "third part   again"

在 Ruby 中我会做类似的事情:

part1, part2, part3= string1.split(/\s+/, 3)

如果我在 Javascript 中使用 split 函数,我会得到这样的结果:

var myArray1 = string1.split(/\s+/, 3);
var myArray2 = string2.split(/\s+/, 3);

myArray1[0]: "1", myArray1[1]: "secondpart", myArray1[2]: "this"
  -and
myArray2[0]: "14", myArray2[1]: "secondpartagain", myArray2[2]: "third"

将字符串按模式拆分为 N 个部分(最后一部分是字符串的其余部分)的最简单方法是什么?

最佳答案

如果你想拆分前两(组)空格:

function splitString(text) {
    var rexSplitter = /^(\S*)\s+(\S*)\s+(.*)$/,
        match = rexSplitter.exec(text);
    if (match) {
        return Array.prototype.slice.call(match, 1, 3);
    } 
}

或者,如果您喜欢短代码:

function splitString(text) {
     var match = /^(\S*)\s+(\S*)\s+(.*)$/.exec(text);
     return match && Array.prototype.slice.call(match, 1, 3);
}

关于Javascript - 按模式将字符串拆分/划分为 N 个部分的简单方法,其中最后一部分是字符串的其余部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5419958/

相关文章:

Javascript removeEventListener 不工作

c# - 拆分 - 加入、聚合、Zip、LINQ

java - Ideone Java 程序运行时错误

Java:将数组列表分割成 block ,其中对象具有相同的属性值

javascript - ReactJs 带有 { hashHistory } 的不错的 URL

javascript - 如何使用 iPhone 中的邮件编辑器插件使用电话间隙 jQuery mobile 发送电子邮件

javascript - 如果鼠标悬停 Div 等于 False - JQuery/Javascript

java - 如何在java中初始化一个二维字符串数组

javascript - Google 脚本 - 仅从字符串创建 HtmlOutput? (即将字符串转换为 html)

java - 是否可以从资源常量中声明一个字符串以在 switch 情况下使用?