有点难度的文本分页显示问题!欢迎高手来指点!来者有分了! 那你用split()分割以后,在把标点加上不就行了。如:var t=s.split(".");for(i=0;i<t.length-1;i++){ t[i]+=".";} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 robinzsy() ,我用的是正则表达式匹配的诶! 天知道当时匹配的是什么符号? 那就不要用split()来分割字符串了,用substring不就行了吗?用indexOf找到标点的位置,然后用substring把前一段的字符串保存到数组里。然后把原字符串等于后半段字符串。然后循环就行了。 robinzsy(),不错不错! 偶试试看!呵呵,你的想法太棒了! 有没有搞错啊,你不会一个一个split啊,你的分割字符串选的也太不好用了吧或者按楼上某些人说的用个特殊字符,比如⊙replace(stringname, ';', ";⊙") replace(stringname, ':', ":⊙")一个个替换完之后再split with "⊙" 刚吃完饭,准备动手写. 居然发现BubbleInDiamond(以下想法纯属虚构)的这个主意! 呵呵,方便方便!省事多了! 谢谢你们的支持! 待会写好了放上来,大家再看看! //////////////////////////////////////////////////////////////////////<% var strDb = String(rs("content")); strDb = strDb.replace(/。/g,"。¤"); strDb = strDb.replace(/:/g,":¤"); strDb = strDb.replace(/!/g,"!¤"); strDb = strDb.replace(/?/g,"?¤"); var arrSort = strDb.split(/¤/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))){ array[j]=strDb; j++; strCount=0; strDb=""; } } var arrayL = array.length-1; //数组array[]的实际下标数 var tPage = String(Request("page")); Response.Write(tPage); var curPage; //当前页面 if(tPage == "undefined") curPage = 0; else curPage = parseInt(tPage); Response.Write(array[curPage]); Response.Write("<br>"); if(arrayL>1){ if(curPage>0) Response.Write('<a href="self.asp?page='+(curPage-1)+'">上一页</a>'); if(curPage<arrayL) Response.Write('<a href="self.asp?page='+(curPage+1)+'">下一页</a>');%> <form name="form" action="self.asp" method="post"> <select name="page"> <% for(var k=0;k<=arrayL;k++){ Response.Write("<option value="+k+">"+k+"</option>"); } %> </select> <a href=# onClick="javascript:self.form.submit()">GO</a> </form><% }%>////////////////////////////////////////////////////////////////////// 运行OK! 该算法比较消耗服务器资源,都要重新进行一次字符串转换和数组重组. 唉!现在赶时间,等以后空下来再改吧! 开工了开工了! ^_^ 求教js怎么选取表格中的某一行? Extjs 的Panel自适应高度问题,附图 给table做全选功能时发现IE会假死怎么办? 求教关于多个文本框验证的一个问题 iframe 加到页面里的问题 BMP图片处理问题 javascript 控制 div 层显示位置的问题 Jquery 取select 值问题 JSP里面还可以继续用DCOM吗? 弹出窗口的问题。。。 /* 请问:setTimeout 如何传递变量参数! */ 如何实现点击button按钮,在页面上新增加一个文本框
robinzsy() ,我用的是正则表达式匹配的诶!
天知道当时匹配的是什么符号?
用indexOf找到标点的位置,然后用substring把前一段的字符串保存到数组里。
然后把原字符串等于后半段字符串。然后循环就行了。
robinzsy(),不错不错!
偶试试看!呵呵,你的想法太棒了!
刚吃完饭,准备动手写.
居然发现BubbleInDiamond(以下想法纯属虚构)的这个主意!
呵呵,方便方便!省事多了!
谢谢你们的支持! 待会写好了放上来,大家再看看!
//////////////////////////////////////////////////////////////////////
<%
var strDb = String(rs("content"));
strDb = strDb.replace(/。/g,"。¤");
strDb = strDb.replace(/:/g,":¤");
strDb = strDb.replace(/!/g,"!¤");
strDb = strDb.replace(/?/g,"?¤");
var arrSort = strDb.split(/¤/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))){
array[j]=strDb;
j++;
strCount=0;
strDb="";
}
} var arrayL = array.length-1; //数组array[]的实际下标数
var tPage = String(Request("page"));
Response.Write(tPage);
var curPage; //当前页面
if(tPage == "undefined")
curPage = 0;
else
curPage = parseInt(tPage);
Response.Write(array[curPage]);
Response.Write("<br>");
if(arrayL>1){
if(curPage>0)
Response.Write('<a href="self.asp?page='+(curPage-1)+'">上一页</a>');
if(curPage<arrayL)
Response.Write('<a href="self.asp?page='+(curPage+1)+'">下一页</a>');
%>
<form name="form" action="self.asp" method="post">
<select name="page">
<%
for(var k=0;k<=arrayL;k++){
Response.Write("<option value="+k+">"+k+"</option>");
}
%>
</select>
<a href=# onClick="javascript:self.form.submit()">GO</a>
</form>
<%
}
%>
//////////////////////////////////////////////////////////////////////
运行OK!
该算法比较消耗服务器资源,都要重新进行一次字符串转换和数组重组.
唉!现在赶时间,等以后空下来再改吧!
开工了开工了!
^_^