有点难度的文本分页显示问题!欢迎高手来指点!来者有分了!
将文本分页显示,我的思路是:
用\n\r.?!;:这些定界符,将文本分成一个数组,这个数组的每一个元素都是以\n\r.?!;:结尾的字符串.
然后,一边计算字数,一边逐个拼合这个数组的元素并赋值给一个临时变量.
当达到一定字数的时候,将临时变量赋值给一个最终数组.并将临时变量和计数器清零.
代码如下:
//////////////////////////////////////////////////////////////////////////////////////////
var strDb = String(rs("content"));
var arrSort = strDb.split(/[\r\n.?!:;]/g); //以结束标点划分字符串,建立数组
var array = new Array(); //最终数组,每一维为一个页面
var i=0; //数组arrSort下标
var j=0; //最终数组下标
var strCount=0; //页面累加字符数
var strDb=""; //临时字符串,累加从数组中提取出的字符
while(i<=(arrSort.length-1)){
strCount += arrSort[i].length;
strDb+=arrSort[i].toString();
i++;
if((strCount>800)||(i==(arrSort.length-1))){
array[j]=strDb;
Response.Write("<span style='color:green;'>array["+j+"]</span><br>");
Response.Write(array[j]);
j++
strCount=0;
strDb="";
}
}
//////////////////////////////////////////////////////////////////////////////////////////
但是这样做,有几个问题.
在用split()方法分解字符串的时候,\n\r这些转义字符还好说,但以.?!:;这些标点为定界符分割字符串时,分割时这些标点被丢弃掉了.最后生成好的数组元素里,尾部都没有标点.在后面将这些数组元素拼合成一个新的字符串的时候,发现该字符串没有了.?!:;这些标点.