comparison js/taggingtext.js @ 106:6de4932d993b extractapp

bug fixed: prevent page halted bcuz the null tagging result from Regex
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Mon, 08 Aug 2016 17:47:19 +0200
parents 2cc65ff46174
children 7f2c5d542616
comparison
equal deleted inserted replaced
105:4eb62953af99 106:6de4932d993b
985 var startPage = $('#regexPageStart').val(); 985 var startPage = $('#regexPageStart').val();
986 var endPage = $('#regexPageEnd').val(); 986 var endPage = $('#regexPageEnd').val();
987 var el = document.getElementById("editable-area"); 987 var el = document.getElementById("editable-area");
988 var str="" + el.innerHTML; 988 var str="" + el.innerHTML;
989 989
990 if ( startPage == "" ) { 990 // if there's no match || the it's a null object..
991 if (str.match(new RegExp(replaceSmartRegexString, "g")) == null) {
992 alert( "Tagged 0 entity!" );
993
994 } else if ( startPage == "" ) {
991 alert( "Tagged "+str.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" ); 995 alert( "Tagged "+str.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" );
992 el.innerHTML = str.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString); 996 el.innerHTML = str.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString);
993 } else { 997 } else {
994 var regexText="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】"; 998 var regexText="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】";
995 var partString = ""+str.match(new RegExp(regexText, "g")); 999 var partString = ""+str.match(new RegExp(regexText, "g"));
1038 var startPage = $('#regexPageStart').val(); 1042 var startPage = $('#regexPageStart').val();
1039 var endPage = $('#regexPageEnd').val(); 1043 var endPage = $('#regexPageEnd').val();
1040 var el = document.getElementById("editable-area"); 1044 var el = document.getElementById("editable-area");
1041 var str="" + el.innerHTML; 1045 var str="" + el.innerHTML;
1042 1046
1043 if ( startPage == "" ) { 1047 // if there's no match || the it's a null object..
1048 if (str.match(new RegExp(replaceSmartRegexString, "g")) == null) {
1049 alert( "Tagged 0 entity!" );
1050
1051 } else if ( startPage == "" ) {
1044 alert( "Tagged "+str.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" ); 1052 alert( "Tagged "+str.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" );
1053
1045 el.innerHTML = str.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString); 1054 el.innerHTML = str.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString);
1046 } else { 1055 } else {
1047 var regexText="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】"; 1056 var regexText="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】";
1048 var partString = ""+str.match(new RegExp(regexText, "g")); 1057 var partString = ""+str.match(new RegExp(regexText, "g"));
1049 alert(partString); 1058 alert(partString);
1085 var startPage = $('#regexPageStart').val(); 1094 var startPage = $('#regexPageStart').val();
1086 var endPage = $('#regexPageEnd').val(); 1095 var endPage = $('#regexPageEnd').val();
1087 var el = document.getElementById("editable-area"); 1096 var el = document.getElementById("editable-area");
1088 var str="" + el.innerHTML; 1097 var str="" + el.innerHTML;
1089 1098
1090 if ( startPage == "" ) { 1099 // if there's no match || the it's a null object..
1100 if (str.match(new RegExp(replaceSmartRegexString, "g")) == null) {
1101 alert( "Tagged 0 entity!" );
1102
1103 } else if ( startPage == "" ) {
1091 alert( "Tagged "+str.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" ); 1104 alert( "Tagged "+str.match(new RegExp(replaceSmartRegexString, "g")).length+" entities!" );
1092 el.innerHTML = str.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString); 1105 el.innerHTML = str.replace(new RegExp(replaceSmartRegexString, "g"), replaceSmartReplaceString);
1093 } else { 1106 } else {
1094 var regexText="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】"; 1107 var regexText="【<a([^<>]*?)>"+startPage+"</a>】(.*?)【<a([^<>]*?)>"+endPage+"</a>】";
1095 var partString = ""+str.match(new RegExp(regexText, "g")); 1108 var partString = ""+str.match(new RegExp(regexText, "g"));
1132 } 1145 }
1133 today = hour+'_'+minute+'_'+dd+'_'+mm+'_'+yyyy; 1146 today = hour+'_'+minute+'_'+dd+'_'+mm+'_'+yyyy;
1134 1147
1135 var name=prompt("Please enter this Regex name", RegexLoadedName+"_"+today); 1148 var name=prompt("Please enter this Regex name", RegexLoadedName+"_"+today);
1136 1149
1150
1151
1137 if (name!=null && name != ''){ 1152 if (name!=null && name != ''){
1153
1154 // the name not allowed to contain " ", "(", ")"
1155 if (name.indexOf(' ') >= 0 || name.indexOf('(') >= 0 || name.indexOf(')') >= 0) {
1156
1157 alert("Save Regex Failed.\nPlease don't use space or '(' or ')' in the name. Consider to use '-' or '_' instead. ");
1158 return;
1159 }
1160
1138 $.ajax({ 1161 $.ajax({
1139 type : 'POST', 1162 type : 'POST',
1140 url : './TaggingText', 1163 url : './TaggingText',
1141 async : false, 1164 async : false,
1142 data : 'func=SmartRegexSave'+'&text='+encodeURIComponent($('#smartRegexShowDiv').html())+'&filename='+name+'&topic_id='+topic_id, 1165 data : 'func=SmartRegexSave'+'&text='+encodeURIComponent($('#smartRegexShowDiv').html())+'&filename='+name+'&topic_id='+topic_id,