【发布时间】:2015-09-12 01:18:27
【问题描述】:
是否有 javascript/jquery 方法或函数可以让我在第 n 次出现选定分隔符时拆分字符串?我希望它像常规的 str.split(delimiter) 一样工作,但不是在每次出现分隔符时进行拆分,而是可以指示每次跳过 n 个分隔符。
var str = "A,BB,C,DDD,EEEE,F";
var strAry = str.split(",");
会导致 strAry 看起来像 {"A","BB","C","DDD","EEEE","F"}
假设我将第 n 次出现设置为 2,我想要的是 {"A,BB","C,DDD","EEEE,F"}。
我写了一个看起来可以工作的小函数,但希望有一个更简单的方法来做到这一点:
function splitn(fullString, delimiter, n){
var fullArray = fullString.split(delimiter);
var newArray = [];
var elementStr = "";
for(var i = 0; i < fullArray.length; i++) {
if (i == fullArray.length-1) {
if (elementStr.length == 0) {
elementStr = fullArray[i];
} else {
elementStr += (delimiter + fullArray[i]);
}
newArray.push(elementStr);
} else {
if (((i + 1) % n) == 0) {
if (elementStr.length == 0) {
elementStr = fullArray[i];
} else {
elementStr += (delimiter + fullArray[i]);
}
newArray.push(elementStr);
elementStr = "";
} else {
if (elementStr.length == 0) {
elementStr = fullArray[i];
} else {
elementStr += (delimiter + fullArray[i]);
}
}
}
};
return newArray;
};
谢谢。
【问题讨论】:
-
您可以使用常规拆分,然后重新加入对
标签: javascript jquery arrays string split