如何分解每X个字符的字符串?例如,我希望每1000个字符分解一个非常长的字符串,并且字符串可能每次都是随机的。javascript - 如何分解每X个字符的字符串?
var string = <my text string that is thousands of characters long>
如何分解每X个字符的字符串?例如,我希望每1000个字符分解一个非常长的字符串,并且字符串可能每次都是随机的。javascript - 如何分解每X个字符的字符串?
var string = <my text string that is thousands of characters long>
你可以使用Regex:
'asdfasdfasdfasdf'.match(/.{3}|.{1,2}/g); // 'asd', 'fas', etc.
当然是有1000更换3。
这里是一个人为的例子:http://jsfiddle.net/ReRPz/1/
function splitInto(str, len) {
var regex = new RegExp('.{' + len + '}|.{1,' + Number(len-1) + '}', 'g');
return str.match(regex);
}
这正则表达式真的只需要,如果你有一组号码拆分像1000
请勿使用'。'如果可以避免的话,可以使用大块文本。你会检查所有的索引,但是像3个难懂的空白字符1000次。 – 2012-03-13 20:39:43
您可以分别捕获最后一组:http://jsfiddle.net/6aSHB/ – 2012-03-13 20:48:20
像这样创建一次:
var myString = "my text string that is thousands of characters long";
var myCurrentString = "";
var myBrokenUpString = new Array();
for(var i = 0; i < myString.length; i++) {
myCurrentString += myString.charAt(i);
if(i % 1000 == 0) {
myBrokenUpString.push(myCurrentString);
myCurrentString = "";
}
if(i + 1 == myString.length) myBrokenUpString.push(myCurrentString);
}
请注意,上面的代码是未经测试并可能包含错误。
然后,您可以将该阵列POST并将其重新拼接在一起。该接头在一起的代码会是这个样子:
var myRestoredString = "";
for(var i = 0; i<myBrokenUpString.length; i++) {
myRestoredString += myBrokenUpString[i];
}
试试这个功能:
function getParts(str, len)
{
var res = [];
while (str.length) {
res.push(str.substring(0, len));
str = str.substring(len);
}
return res;
}
var s = "qweasedzxcqweasdxzc12";
console.log(getParts(s, 10));
我会用在字符串
str = //the given string
arr = [];
for(i=0;i<str.length;i+=1000)
{
s = i;
// if the last string is less than 1000chars
e = (str.length - i) > 1000 ? (i+1000) : (str.length - i);
arr.push = str.substring(s,e);
}
这里的子功能一种递归的方式:
var string = "my text string that is thousands of characters long";
var arr = [];
function div(str, len) {
if(str.length < len)
return arr.push(str);
else
arr.push(str.substring(0,len))
div(str.substring(len), len);
}
div(string, 5);
for(var i = 0; i < arr.length; i++) {
document.write(arr[i] + "<br/>");
}
/* output:
my te
xt st
ring
that
is th
ousan
ds of
char
acter
s lon
g
*/
借用乔Tuskan的想法:
var str = 'asdfasdfasdfasdf';
var len = 3;
var regex = new RegExp(".{"+len+"}", "g");
var trail = str.length - (str.length % len);
var parts = str.match(regex);
parts.push(str.substring(trail));
document.write(parts.join('<br>'));
分手,做什么用的零件?把他们包装在一些东西?将它们添加到数组或变量? – 2012-03-13 20:30:15
不,请留下它们,通过POST发送它们,然后我将它们拼接在后端。 – 2012-03-13 20:31:35
在获取字符串“length”的模数和数量“x”以确定分割数之后,您可以'substring()'字符串。 – user17753 2012-03-13 20:32:15