var allTixingArr = [
'默写',
'作文',
'其他',
'短文',
'句子',
'单句',
'填空题',
'简答题',
'解答题',
'判断题', //判断
'双选题',
'计算题',
'作图题',
'综合题',
'推断题',
'实验题',
'探究题',
'选择题', //多选
'辨析题',
'论述题',
'简析题',
'多选题', //多选
'单选题', //单选
'连线题',
'诗歌鉴赏',
'语言表达',
'名著导读',
'完形填空',
'单词辩音',
'单词释义',
'阅读理解',
'阅读表达',
'语法填空',
'短文改错',
'阅读填空',
'单句改错',
'完成句子',
'句型转换',
'句子翻译',
'书面表达',
'非选择题',
'现代文阅读',
'文言文阅读',
'阅读七选五',
'任务型阅读',
'任务型读写',
'识图作答题',
'材料解析题',
'分析评价题',
'技术应用题',
'作图读图题',
'不定项选择题', //多选
'单句语法填空',
'实验题探究题',
'首字母短文填空'];//文档全解析
var xiaotiMiaoshu = []; //小题描述
var daanhejiexi = ""; //答案和解析
var allCount = 0; //总的题目数量
var plainTxt = "";
function startFenxi(){if($.trim(ue.getPlainTxt()) == ""){layer.open({title:"抱歉",content:"没有检测到内容"});return false;}plainTxt = ue.getPlainTxt().substring(0, ue.getPlainTxt().indexOf("答案和解析"));daanhejiexi = ue.getPlainTxt().substring(ue.getPlainTxt().indexOf("答案和解析"));//去掉所有回车和换行plainTxt = plainTxt.replace(/\n/g, "");daanhejiexi = daanhejiexi.replace(/\n/g, "");//判断是否匹配类型,如果是则可以取试卷标题if(daanhejiexi.length > 0){$("#paper-name").val((plainTxt.substring(0, plainTxt.indexOf("副标题"))));}var tixingStrArr = []; //存储当前得到的题型var tixingCount = 0;for(var i=0; i<allTixingArr.length; i++){if(plainTxt.indexOf("、"+allTixingArr[i]+"(") != -1){tixingCount ++;tixingStrArr.push(allTixingArr[i]);}}//大题的序号需要找出然后删除var indexArr = []; //将得到的题型进行排序for(var i=0; i<tixingStrArr.length; i++){//获取对应的大题序号var xuhaoStr = plainTxt.substring(plainTxt.indexOf("、" + tixingStrArr[i] + "(") -1, plainTxt.indexOf("、" + tixingStrArr[i] + "("));if(tixingStrArr.length <= 9){tixingStrArr[i] = xuhaoStr + "、" + tixingStrArr[i] + "(";}else if(tixingStrArr.length <= 20){var firstStr = plainTxt.substring(plainTxt.indexOf("、" + tixingStrArr[i] + "(") -2, plainTxt.indexOf("、" + tixingStrArr[i] + "(") - 1);if(firstStr === "十" || firstStr === "二"){xuhaoStr = firstStr + xuhaoStr;}}indexArr.push(plainTxt.indexOf(tixingStrArr[i]));}//对得到的题型进行排序for(var i=0;i<indexArr.length-1;i++){//外层循环控制排序趟数for(var j=0;j<indexArr.length-1-i;j++){//内层循环控制每一趟排序多少次if(indexArr[j]>indexArr[j+1]){//序号排序var temp=indexArr[j];indexArr[j]=indexArr[j+1];indexArr[j+1]=temp;//排序题型以适配文档题目类型顺序var temp2=tixingStrArr[j];tixingStrArr[j]=tixingStrArr[j+1];tixingStrArr[j+1]=temp2;}}}//此时tixingArr是已经排列好顺序的var datiStrArr = []; //存储每一道大题的题文for(var i=0; i<tixingStrArr.length; i++){if(i == tixingStrArr.length -1 ){ //最后一种datiStrArr.push(plainTxt.substring(plainTxt.indexOf(tixingStrArr[i])));}else{datiStrArr.push(plainTxt.substring(plainTxt.indexOf(tixingStrArr[i]), plainTxt.indexOf(tixingStrArr[(i+1)])));}}//得到了每道大题的题文内容后进行解析判断这道题总共有多少道小题,这样可以循环var xiaotiCountArr = []; //每道大题的小题个数var stat = 0; //序号var startIndex = 1;for(var i=0; i<datiStrArr.length; i++){var xiaotiCount = datiStrArr[i].substring(datiStrArr[i].indexOf("本大题共")+4, datiStrArr[i].indexOf("小题,"));var xiaotiScore = datiStrArr[i].substring(datiStrArr[i].indexOf("小题,共")+4, datiStrArr[i].indexOf(".0分)"));xiaotiCountArr.push(parseInt(xiaotiCount));//保存题的描述,包括题型,小题数量,小题分数var tixing = tixingStrArr[i];var tiCount = xiaotiCount;allCount += parseInt(xiaotiCount);var tiScore = xiaotiScore;if(i === 0){startIndex = 1;}else{startIndex += parseInt(xiaotiCountArr[(i-1)]); //开始序号为上一题的开始+上一题的题数}xiaotiMiaoshu.push(tixing+"&*" + tiCount + "&*" + tiScore + "&*" + startIndex);}//得到题文描述后开始进行分析每道大题中的所有小题并取出来for(var i=0; i<xiaotiMiaoshu.length; i++){var split = xiaotiMiaoshu[i].split("&*");var tiCount = split[1];var tiScore = split[2];var tiStartIndex = split[3];var tiEndIndex = parseInt(tiStartIndex) + parseInt(tiCount) -1;//获取每一道小题内容for(var j=tiStartIndex; j<=tiEndIndex; j++){var title = datiStrArr[i].substring(datiStrArr[i].indexOf(j+". "));var singleQuestionStr = "";var singleAnswerStr = "";if(j === tiEndIndex){singleQuestionStr = title.substring(title.indexOf(j+". ")+(j+". ").length);singleAnswerStr = daanhejiexi.substring(daanhejiexi.indexOf(j+". ")+(j+". ").length);}else{singleQuestionStr = title.substring(title.indexOf(j+". ")+(j+". ").length, title.indexOf((parseInt(j)+1)+". "));singleAnswerStr = daanhejiexi.substring(title.indexOf(j+". ")+(j+". ").length, daanhejiexi.indexOf((parseInt(j)+1)+". "));}let answer = "A"; //默认选项let childrenArr = [];let isFirst = false;let isLast = false;if(j == 1){isFirst = true;}if(j == allCount){isLast = true;}let qid = parseInt(j);let score = parseInt(tiScore / tiCount);let selectArr = ["<button>A</button>", "<button>B</button>", "<button>C</button>", "<button>D</button>"];questions.push({answer:answer,childrenArr:childrenArr,qid:qid,score:score,selectArr:selectArr,title:singleQuestionStr});}}//设置答案setAnswer(xiaotiMiaoshu);uiFlushCardList();uiFlushQuestionList();
}
//解析答案并设置到题目中
var allAnswerStrArr = [];
function setAnswer(xiaotiMiaoshu){var nowCount = 0;for(var i=1; i<=allCount; i++){nowCount++;if(i == allCount){allAnswerStrArr.push(daanhejiexi.substring(daanhejiexi.indexOf(i+".【")));}else{let ind = daanhejiexi.indexOf((i+1)+".【");let endStr = daanhejiexi.substring(ind-1, ind);let flag = true; //是否是正确的序号捕获if(endStr == "1" || endStr == "2" || endStr == "3" || endStr == "4" || endStr == "5" || endStr == "6" || endStr == "7" || endStr == "8" || endStr == "9"){if(((i+1)+""+endStr).length > 2){ //序号长度如果大于3位数则是正确的flag = true;}else{flag = false;console.info("错误的序号:" + (i+1));}}if(daanhejiexi.indexOf((i+1)+".【") == -1 || flag == false){let tmp = daanhejiexi.substring(daanhejiexi.indexOf(i+".【答案】"));let jiexiTmp = tmp.substring(tmp.indexOf("【答案】"), tmp.indexOf("【解析】"));let xiaotiCount = 0; //小题答案个数for(var j=1; j<=5; j++){if(jiexiTmp.indexOf(j+"】") != -1){i++;xiaotiCount ++;}else{break;}}var resultJiexi = tmp.substring(0, tmp.indexOf(i+".【答案】"));resultJiexi = resultJiexi.substring(resultJiexi.indexOf("【解析】") + 4);var answerMoreStr1 = "";for(var j=1; j<=xiaotiCount; j++){if(j == xiaotiCount){let answer = jiexiTmp.substring(jiexiTmp.indexOf(j+"】")+2, jiexiTmp.indexOf(j+"】") + 3);answerMoreStr1 = nowCount+".【答案】" + answer + "【解析】" + resultJiexi;nowCount++;}else{let answer = jiexiTmp.substring(jiexiTmp.indexOf(j+"】")+2, jiexiTmp.indexOf(j+"】") + 3);answerMoreStr1 = nowCount+".【答案】" + answer + "【解析】" + resultJiexi;nowCount++;}allAnswerStrArr.push(answerMoreStr1);}i--;nowCount --;}else{allAnswerStrArr.push(daanhejiexi.substring(daanhejiexi.indexOf(i+".【"), daanhejiexi.indexOf((i+1)+".【")));}}}for(var i=0; i<xiaotiMiaoshu.length; i++){var split = xiaotiMiaoshu[i].split("&*");var tixing = split[0];var tiCount = split[1];var tiStartIndex = split[3];var tiEndIndex = parseInt(tiStartIndex) + parseInt(tiCount) -1;tiStartIndex = parseInt(tiStartIndex);tiEndIndex = parseInt(tiEndIndex);//["一、单选题("] --> ["单选题"]tixing = tixing.substring(tixing.indexOf("、")+1, tixing.indexOf("("));for(var j=tiStartIndex; j<=tiEndIndex; j++){if(tixing == "选择题" || tixing == "单选题"){questions[j-1].type = 1;questions[j-1].answer = allAnswerStrArr[j-1].substring(allAnswerStrArr[j-1].indexOf("【答案】") + 4, allAnswerStrArr[j-1].indexOf("【答案】") + 5);}else if(tixing == "多选题" || tixing == "双选题" || tixing == "不定项选择题"){questions[j-1].type = 2;questions[j-1].answer = [];var tmp = allAnswerStrArr[j-1].substring(allAnswerStrArr[j-1].indexOf("【答案】")+4, allAnswerStrArr[j-1].indexOf("【解析】"));if(tmp.indexOf("A") !== -1){questions[j-1].answer.push("A");}if(tmp.indexOf("B") !== -1){questions[j-1].answer.push("B");}if(tmp.indexOf("C") !== -1){questions[j-1].answer.push("C");}if(tmp.indexOf("D") !== -1){questions[j-1].answer.push("D");}}else if(tixing == "判断题"){questions[j-1].type = 3;if((allAnswerStrArr[j-1].substring(allAnswerStrArr[j-1].indexOf("【答案】") + 4, allAnswerStrArr[j-1].indexOf("【答案】") + 5)) == "T" || (allAnswerStrArr[j-1].substring(allAnswerStrArr[j-1].indexOf("【答案】") + 4, allAnswerStrArr[j-1].indexOf("【答案】") + 5)) == "A"){questions[j-1].answer = "对";}else if((allAnswerStrArr[j-1].substring(allAnswerStrArr[j-1].indexOf("【答案】") + 4, allAnswerStrArr[j-1].indexOf("【答案】") + 5)) == "F" || (allAnswerStrArr[j-1].substring(allAnswerStrArr[j-1].indexOf("【答案】") + 4, allAnswerStrArr[j-1].indexOf("【答案】") + 5)) == "B"){questions[j-1].answer = "错";}else{questions[j-1].answer = "对";}}else{questions[j-1].type = 5;questions[j-1].answer = allAnswerStrArr[j-1].substring(allAnswerStrArr[j-1].indexOf("【答案】") + 4, allAnswerStrArr[j-1].indexOf("【解析】"));}questions[j-1].answerMore = allAnswerStrArr[j-1].substring(allAnswerStrArr[j-1].indexOf("【解析】") + 4);}}
}

解析zxw doc文档最终版本相关推荐

  1. 计算机中考在线评分模拟卡,TOP30广西南宁市2016届中考权威预测模拟数学试卷一解析版.doc文档免费在线阅读(模版2)...

    <广西南宁市2016届中考权威预测模拟数学试卷(一)(解析版).doc>由会员分享,可免费在线阅读全文,更多与<TOP30广西南宁市2016届中考权威预测模拟数学试卷(一)(解析版) ...

  2. Java导出带有单选款(radio)和复选框(checkbox)选中效果的word doc文档-Freemarker实现方式

    今天客户提出要求,要求把表数据导出成为word文档格式.导成word格式的这种需求很寻常,但是看到word模板里面的这种单选框和多选框(如下图),要求实现选中效果,我就有点懵B了.到处百度,googl ...

  3. java实现保存合同模板_Java中常用到的文件操作那些事(一)——替换doc文档模板,生成真实合同案例...

    工作中,我们时常会遇到一些操作文件的操作,比如在线生成合同模板,上传/下载/解析Excel,doc文档转为pdf等操作.本文就已工作中遇到的在线生成合同为例,简要地介绍一种文档替换写法. 本文目的:给 ...

  4. Nagios安装部署与Cacti整合文档超精细版本

    Nagios安装部署与Cacti整合文档超精细版本 (2011-06-01 01:28) 分类: nagios监控 Nagios安装部署与Cacti整合文档 系统环境:CentOS5.4 文档版本:V ...

  5. SpringBoot集成OpenOffice实现doc文档转html

    场景 OpenOffice OpenOffice.org(通称OpenOffice:简称OOo或OO.o)是一套开放源代码的办公室软件,可以在多种操作系统上运作. 默认的文件交换格式是已经成为ISO标 ...

  6. 使用poi写入doc文档中文档打不开_基于NodeJS和浏览器的PDF文档引擎——PDFKit

    介绍 PDFKit是一个用于Node和浏览器的PDF文档生成库,可以轻松创建复杂的多页面可打印文档.API包含可链接性,包括低级功能以及更高级功能的抽象.PDFKit API设计简单,因此生成复杂文档 ...

  7. Kindle Paperwhite 越狱/加字体/支持PDF、EPUB、DjVu、FB2、CHM和DOC文档

    0. 升级 官网固件升级:http://www.amazon.com/gp/help/customer/display.html/ref=hp_left_cn?ie=UTF8&nodeId=2 ...

  8. 完美解决,用Linux打开和编辑doc文档~

    写这篇的原因在于我无法在centos下打开wps,打开就会闪退,网上也没有找到解决的办法,索性使用另外一款软件openoffice. 一.软件下载 Openoffice下载地址:https://www ...

  9. java doc转换docx_JAVA - 将doc文档转为docx文档

    因为项目需要解析文档,而且 doc 文档还不少,全网能找到的靠谱的解析doc甚至是将doc转txt的方案实际上不多.这个是部分文件统计 .Net 和 java 有一个收费的解决方案,但是我确实没钱sp ...

最新文章

  1. 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书
  2. 运维调试记录:Opendaylight铍版本开发环境搭建流程
  3. CCNA重点难点:生成树配置
  4. 抑制恐慌,互联网能够做些什么?
  5. (王道408考研数据结构)第七章查找-第四节:哈希表(基本概念及其操作)
  6. Hadoop2.6.0学习笔记(八)SPOF解决方案总结
  7. NameError: name 'sys' is not defined
  8. 安装hive操作参考视频
  9. Windows 7 With SP1 MSDN版 含简体中文版
  10. 静态的通讯录(C语言)
  11. 卡巴斯基中国公司推出3台双线升级服务器
  12. VAX/VMS虚拟内存系统
  13. [shell编程] 入门基础总结 (一) (一种豁然开朗的感觉)
  14. swift Key Path Layer.borderColor/Layer.borderUIColor 设置边框为黑框 颜色无效
  15. 复合辛普森公式求解定积分 matlab
  16. MarkMan(马克鳗)的下载及安装方法
  17. 记账APP:小哈记账2——注册页面的制作
  18. AJAX读取Json文件
  19. c语言如何框出视频或图像中的车辆,[转载]视频图像中的车辆检测跟踪和分类
  20. java词云推荐(KUMO)

热门文章

  1. 五年Android,靠着这份资料,我从无名小厂成功跳槽字节
  2. 重构产品负责人:SPO / TPO模型
  3. oracle 创建工作日表,oracle下sql创建指定年份全年日期表(区分工作日)
  4. 思考-个人成长(面向前端,也不只是前端)
  5. 人生时间计算器_用好人生“计算器”
  6. 图像迁移风格保存模型_一种图像风格迁移方法与流程
  7. MATLAB图例变成一列变多列的方法
  8. Mysql的卸载流程
  9. 双指针--快慢指针和对撞指针
  10. 欧拉回路 (七桥问题)