<script>

function  getPageNumRange(pagenumstr)
{
var pages=pagenumstr.split(";");
pages.sort(function(a,b){
return a-b;
});
var delta=0;
var lianxiu=new Array();
var bulianxiu=new Array();
for(var i=0;i<pages.length;i++){
delta=0;
delta=(1*pages[i+1])-(1*pages[i]);
if(1==delta)
{ //连续
lianxiu.push(pages[i]);
lianxiu.push(pages[i+1]);
}
else
{
if(delta>1)
{ //不连续
lianxiu.push("|");
if(lianxiu.indexOf(pages[i])==-1)
bulianxiu.push(pages[i]);
}
} if (i==pages.length-1){
if(lianxiu.indexOf(pages[i])==-1)
{
bulianxiu.push(pages[i]);
}
}
} lianxiuStr=lianxiu.toString().replace(/\|\,/g,"|").replace(/\,\|/g,"|");
var lianxiuArr=lianxiuStr.split("|");
var ResultStr1="";
for(var i=0;i<lianxiuArr.length;i++){
var yema=lianxiuArr[i];
if(""!=yema)
{
var yemaArr=yema.split(","); if(""==ResultStr1)
{
ResultStr1=yemaArr[0]+"-"+yemaArr[yemaArr.length-1];
}
else
{
ResultStr1=ResultStr1+";"+yemaArr[0]+"-"+yemaArr[yemaArr.length-1];
}
}
}//for var resultPageNums="";
var resultList=ResultStr1.split(";"); for(var i=0;i<bulianxiu.length;i++){
resultList.push(bulianxiu[i]);
} resultList.sort(function(a,b){
var v1,v2;
if(a.indexOf("-")!=-1)
{
v1=a.substr(0,a.indexOf("-"))*1;
}else v1=a*1; if(b.indexOf("-")!=-1)
{
v2=b.substr(0,b.indexOf("-"))*1;
}else v2=b*1;
return v1-v2;
});
return resultList.toString();
} alert(getPageNumRange("9;10;17;18;19;21;23;25;26;27;28;30;36;37;38;40")); </script>

getPageNumRange的更多相关文章

随机推荐

  1. Qt applendPlainText()/append() 多添加一个换行解决方法

    Qt applendPlainText()/append() 多添加一个换行解决方法 void ConsoleDialog::appendMessageToEditor(const QString & ...

  2. DevExpress Grid使用checkBox选中的方法

    到官网得到消息自13.2版本后的Dev Grid中均内置了CheckBox列多选功能.在寻找答案的过程的成果进行记录. 一.13.2版本以后用法 启用多选列 对Gird中的View进行以下属性设置: ...

  3. 蓝桥第八届省赛 javaB组承压计算

    X星球的高科技实验室中整齐地堆放着某批珍贵金属原料. 每块金属原料的外形.尺寸完全一致,但重量不同.金属材料被严格地堆放成金字塔形. 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 ...

  4. PHP中的反射模拟框架中控制器的调度

    <?php class IndexAction { public function index() { echo 'index'; } public function indexBefore() ...

  5. TCP/IP各层对应的协议

    应用层: 该层包括所有和应用程序协同工作,利用基础网络交换应用程序专用的数据协议.如: HTTP:超文本传输协议. TELNET:(网络电传),通过一个终端(terminal)登录到网络(运行在TCP ...

  6. Android Studio中依赖引起错误

    请参阅 https://blog.csdn.net/taowuhua0505/article/details/82424351

  7. iOS 自定义底部tabbar加号按钮实现方法

    自定义UITabBar替换系统默认的,目的是为了在UITabBar中间位置添加一个“+号按钮” 1.自定义WBTabBar,让其继承自UITabBar,并定义点击事件代理方法. .h方法里面 #imp ...

  8. source Insight 添加python 工程

    1. 下载python的识别文件 Python.CLF 2.设置    

  9. jenkins使用git拉取gitlab代码

    1 在安装jenkins的主机上新加一个jenkins用户, 切换到jenkins用户登录, 生成公钥私钥ssh-keygen -t rsa -C "your email" -f ...

  10. 记录Redis使用中遇到的两个问题(原子性及数据完整性)

    1.使用Redis作为分布式锁的原子性问题 原方案: ① SETNX $LOCK_BUSI_KEY $REQ_ID ② EXPIRE $LOCK_BUSI_KEY $LOCK_TIME 问题: 使用S ...