Browse Source

适配移动端惰性匹配

namejr 4 years ago
parent
commit
4e60771eb7
1 changed files with 9 additions and 4 deletions
  1. 9 4
      EBook.Web/Common/new_tasklib_book.js

+ 9 - 4
EBook.Web/Common/new_tasklib_book.js

@@ -1055,7 +1055,7 @@ function ChangeCheckFlag(DataStr, AnswerStr) {
         var pattWStr = "";
         for (var i = 0; i < DataArr.length; i++) {
             if (pattWStr != "") {
-                pattWStr += ".*?" + DataArr[i];
+                pattWStr += ".*" + DataArr[i];
             }
             else {
                 pattWStr += DataArr[i];
@@ -1063,9 +1063,11 @@ function ChangeCheckFlag(DataStr, AnswerStr) {
         }
         var matchesWArr = AnswerStr.match(new RegExp(pattWStr, "ig"));
         if (matchesWArr != null && matchesWArr.length > 0) {
-            //DataStr = matchesWArr[0];
-            //ReStr = AnswerStr.substring(0, (AnswerStr.indexOf(DataStr) + DataStr.length));
-            ReStr = matchesWArr[0];
+            var matchesStr = matchesWArr[0];
+            ReStr = AnswerStr.substring(0, (AnswerStr.indexOf(matchesStr) + matchesStr.length));  // 获取到的匹配字符串
+            // 安卓的惰性匹配不成功
+            var StartIndex = ReStr.indexOf(DataArr[DataArr.length - 1], DataStr.indexOf("'"));
+            ReStr = ReStr.substring(0, (StartIndex + DataArr[DataArr.length - 1].length));  // 获取最前面的字符串
         }
     }
     return ReStr;
@@ -1085,6 +1087,9 @@ function SplitUserAnswer(AllAnswer, mytext) {
             var RemoveStr = mytext.substring(0, (mytext.indexOf(ReStr) + ReStr.length));  // 匹配到的整句话
             var PrevReStr = mytext.substring(0, mytext.indexOf(ReStr));  // 匹配到的前半部分(无适配/多余)
             mytext = mytext.replace(RemoveStr, "");
+            while (mytext[0] == " ") {
+                mytext = mytext.substring(1, mytext.length);  // 删除前缀空格
+            }
             if (checkStrFunc(AllAnswer[i].ID) && AllAnswer[i].Type == "sentence") {
                 // 检查是否属于高亮,存在需要恢复显示高亮
                 ReStr = PrevReStr + '<img src="' + PicInfo.sentenceIcoUrl + '" class="sentImagcs" data-lstatus="3" data-setstatus="1"><span id="' + AllAnswer[i].ID + '" name="S' + AllAnswer[i].ID + '" flag="sentence" class="sentenceStyle" data-setstatus="1" data-lstatus="1" kcode="' + AllAnswer[i].kcode + '" hitcode="' + AllAnswer[i].hitcode + '">' + ReStr + '</span>';