如果我有字符串:
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/