├── .gitattributes ├── README.md └── 排版脚本自由与分享版.jsee /.gitattributes: -------------------------------------------------------------------------------- 1 | *.jsee linguist-language=JavaScript 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qianyun210603/emeditor_macros/HEAD/README.md -------------------------------------------------------------------------------- /排版脚本自由与分享版.jsee: -------------------------------------------------------------------------------- 1 | menu = CreatePopupMenu(); 2 | 符号 = CreatePopupMenu(); 3 | 空格 = CreatePopupMenu(); 4 | 标题 = CreatePopupMenu(); 5 | 数字 = CreatePopupMenu(); 6 | VIP1 = CreatePopupMenu(); 7 | VIP = CreatePopupMenu(); 8 | 段落 = CreatePopupMenu(); 9 | 内容 = CreatePopupMenu(); 10 | HTML = CreatePopupMenu(); 11 | 正则 = CreatePopupMenu(); 12 | 13 | /******************************************************************************* 14 | case编号规则:按十进制个位十位为对应二级菜单,百位千位对应一级菜单, 15 | 万位对应是否即使有选择也全局替换。 16 | ********************************************************************************/ 17 | menu.Add("排版脚本:自由与分享版", 1); 18 | menu.Add("", 0, eeMenuSeparator); 19 | menu.Add("从开头选择到光标", 2); 20 | menu.Add("从光标选择到结尾", 3); 21 | menu.Add("", 0, eeMenuSeparator); 22 | menu.AddPopup("VIP章节标题(预处理)", VIP1); 23 | VIP1.Add("使用指南:VIP章节不规范标题预处理使用", 10400); 24 | VIP1.Add("", 0, eeMenuSeparator); 25 | VIP1.Add("加“第章”量词:一二三 → 第一二三章", 10401); 26 | VIP1.Add("标题内加空格:逐鹿卷第123章 → 逐鹿卷 第123章", 10402); 27 | VIP1.Add("", 0, eeMenuSeparator); 28 | VIP1.Add("残缺括号配对:逐鹿卷(123 → 逐鹿卷(123)", 10403); 29 | VIP1.Add("为标题中指定位置添加括号:逐鹿卷(123)", 10404); 30 | VIP1.Add("为标题中关键词所在字段添加括号:逐鹿卷(上)", 10405); 31 | menu.AddPopup("标题序数整理转换", 数字); 32 | 数字.Add("使用指南:HP排版在标题行使用", 10500); 33 | 数字.Add("", 0, eeMenuSeparator); 34 | 数字.Add("第壹贰叁章 → 第一二三章", 10501); 35 | 数字.Add("第一二三章,第一百二十三章 → 第123章", 10502); 36 | 数字.Add("第一二三章 → 第一百二十三章", 10503); 37 | 数字.Add("第123章 → 第一百二十三章", 10504); 38 | 数字.Add("第1章 → 第001章", 10505); 39 | menu.AddPopup("正文章节标题整理", 标题); 40 | 标题.Add("章节标题前插入二个空行(自定义关键词)", 10601); 41 | 标题.Add("章节标题前插入三个空行(自定义关键词)", 10602); 42 | 标题.Add("", 0, eeMenuSeparator); 43 | 标题.Add("标题前插入自定义卷名", 10603); 44 | 标题.Add("", 0, eeMenuSeparator); 45 | 标题.Add("删除标题前后空格(自定义关键词)", 10604); 46 | 标题.Add("删除标题前空行(自定义关键词)", 10605); 47 | 标题.Add("删除标题后空行(自定义关键词)", 10606); 48 | 标题.Add("删除连续重复两行的标题", 10607); 49 | 标题.Add("", 0, eeMenuSeparator); 50 | 标题.Add("标题章节量词前后插入半角空格:第一二三章 → ( 第一二三章 )", 10608); 51 | 标题.Add("标题章节序数加“第章”量词:一二三 → 第一二三章", 10609); 52 | menu.Add("", 0, eeMenuSeparator); 53 | menu.AddPopup("正文内容修正(手动排版)", 内容); 54 | 内容.Add("段首插入内容(卷名,作品相关)", 700); 55 | 内容.Add("段尾插入内容(自定义)", 701); 56 | 内容.Add("", 0, eeMenuSeparator); 57 | 内容.Add("使用指南:删除无用内容使用说明举例", 702); 58 | 内容.Add("", 0, eeMenuSeparator); 59 | 内容.Add("删除不规则乱码干扰码(数字字母ascii符号组成)", 703); 60 | 内容.Add("删除含无用内容的句子(广告,网址)", 704); 61 | 内容.Add("删除含无用内容的一个段落(广告,网址)", 705); 62 | 内容.Add("删除含无用内容的多个段落(广告,网址,评论)", 706); 63 | 内容.Add("", 0, eeMenuSeparator); 64 | 内容.Add("保存换行为CR+LF", 707); 65 | 内容.Add("保存编码为ANSI(系统默认GB2312)", 708); 66 | menu.AddPopup("段落格式整理", 段落); 67 | 段落.Add("使用指南:若用于编辑非小说文档,慎重使用", 000); 68 | 段落.Add("", 0, eeMenuSeparator); 69 | 段落.Add("规范行首(2全角空格)段首(3空行)段间(2空行)", 10800); 70 | 段落.Add("规范行首(2全角空格)段首(3空行)段间(2空行)【多级标题】", 10801); 71 | 段落.Add("段落重排(删空行,标点关键词分段,规范行首,段落间两空行)", 10802); 72 | 段落.Add("段落重排(删错误句中回车,重新分段)", 10803); 73 | 段落.Add("修正句中换行(段间有空行)", 10813); 74 | 段落.Add("删除硬回车", 10804); 75 | 段落.Add("", 0, eeMenuSeparator); 76 | 段落.Add("删除空行(含空格)", 805); 77 | 段落.Add("删除空行的空格(不含空行)", 806); 78 | 段落.Add("段落间统一为两个空行(去除空行空格)", 10807); 79 | 段落.Add("段落间加入两个空行(简单)", 10808); 80 | 段落.Add("", 0, eeMenuSeparator); 81 | 段落.Add("删除段落首尾空格", 809); 82 | 段落.Add("删除段首半角空格", 810); 83 | 段落.Add("删除段首全角空格", 811); 84 | 段落.Add("删除段尾空格", 812); 85 | menu.AddPopup("空格格式整理", 空格); 86 | 空格.Add("使用指南:若内文中有英文句子,切勿删除所有空格", 00); 87 | 空格.Add("", 0, eeMenuSeparator); 88 | 空格.Add("删除所有空格(慎用)", 900); 89 | 空格.Add("删除所有半角空格(慎用)", 901); 90 | 空格.Add("删除所有全角空格", 902); 91 | 空格.Add("删除所有内文空格(不含行首标题空格)", 903); 92 | 空格.Add("", 0, eeMenuSeparator); 93 | 空格.Add("多个空格 → 一个半角空格", 904); 94 | 空格.Add("多个空格 → 两个全角空格", 905); 95 | menu.AddPopup("符号整理:数字,字母,标点,空格", 符号); 96 | 符号.Add("使用指南:若用于编辑非小说文档,慎重使用", 00); 97 | 符号.Add("", 0, eeMenuSeparator); 98 | 符号.Add("文中英文全部转为小写", 1000); 99 | 符号.Add("", 0, eeMenuSeparator); 100 | 符号.Add("半角空格 → 全角空格", 1001); 101 | 符号.Add("半角标点 → 全角标点", 1002); 102 | 符号.Add("半角aA → 全角aA", 1003); 103 | 符号.Add("半角123 → 全角123", 1004); 104 | 符号.Add("", 0, eeMenuSeparator); 105 | 符号.Add("全角空格 → 半角空格", 1005); 106 | 符号.Add("全角标点 → 半角标点", 1006); 107 | 符号.Add("全角aA → 半角aA", 1007); 108 | 符号.Add("全角123→半角123", 1008); 109 | 符号.Add("", 0, eeMenuSeparator); 110 | 符号.Add("一二三 → 123(正文慎用)", 1009); 111 | 符号.Add("中文引号「」&『』 → “”", 1010); 112 | 符号.Add("", 0, eeMenuSeparator); 113 | 符号.Add("规范省略号(。。。)(”。)(。…)→ …", 1011); 114 | 符号.Add("规范段首标点到上段尾", 1012); 115 | menu.Add("", 0, eeMenuSeparator); 116 | menu.AddPopup("HTML源代码内容修正", HTML); 117 | HTML.Add("使用指南:HTML修正", 1100); 118 | HTML.Add("", 0, eeMenuSeparator); 119 | HTML.Add("删除代码(块)", 1101); 120 | HTML.Add("删除代码(标签)", 1102); 121 | HTML.Add("删除代码(文本链接)", 1103); 122 | HTML.Add("删除代码(图片链接)", 1104); 123 | HTML.Add("删除代码(整行关键词)", 1105); 124 | HTML.Add("删除代码(整段关键词)", 1106); 125 | HTML.Add("删除代码(表格)", 1107); 126 | HTML.Add("删除代码(框架)", 1108); 127 | HTML.Add("", 0, eeMenuSeparator); 128 | HTML.Add("删除代码(广告脚本SCRIPT)", 1109); 129 | HTML.Add("删除代码()", 1110); 130 | HTML.Add("删除代码()", 1111); 131 | menu.AddPopup("正则表达式使用简要说明", 正则); 132 | 正则.Add("认识正则表达式", 1200); 133 | 正则.Add("正则表达式规则", 1201); 134 | 正则.Add("正则表达式字符", 1202); 135 | 正则.Add("正则表达式符号使用须知", 1203); 136 | 正则.Add("正则表达式易犯错误", 1204); 137 | 正则.Add("正则表达式使用技巧", 1205); 138 | 正则.Add("", 0, eeMenuSeparator); 139 | 正则.Add("常见正则表达式", 1206); 140 | 正则.Add("常见描述标题的正则表达式", 1207); 141 | 142 | result = menu.Track(0); 143 | if (document.selection.isempty || result > 9999) 144 | nFlags = eeFindNext | eeReplaceAll | eeFindReplaceRegExp; 145 | else 146 | nFlags = eeFindNext | eeReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp; 147 | 148 | // Use a plugin as customized prompt 149 | function getTitleRegex(precomment, multiLevelTitle) { 150 | precomment = precomment || ''; 151 | multiLevelTitle = multiLevelTitle || false; 152 | var buffer = precomment + new Array(1024 - precomment.length + 1).join( "*" ); 153 | var bufferFlag = editor.ExecutePlugin( 154 | "EmeditorMacroDlg.dll", 155 | eePluginUserMessage, 156 | (((buffer.length<<1)+(multiLevelTitle?1:0))<<15)+precomment.length, 157 | buffer 158 | ); 159 | if (bufferFlag > 0) { 160 | var bufferSize = bufferFlag >> 2; 161 | var result = { 162 | "title_regex" : multiLevelTitle?buffer.substring(0, bufferSize).split("\n"):buffer.substring(0, bufferSize), 163 | "include_inner_text" : (bufferFlag & 0x1) != 0, 164 | "sep_in_title_regex" : (bufferFlag & 0x2) != 0, 165 | }; 166 | return result; 167 | } 168 | return null; 169 | } 170 | 171 | switch (result) { 172 | case 1: 173 | alert("排版脚本 For EmEditor 1.0 (hP制作)"); 174 | break; 175 | case 2: 176 | document.selection.StartOfDocument(true); 177 | break; 178 | case 3: 179 | document.selection.EndOfDocument(true); 180 | break; 181 | case 900: 182 | //删除所有空格 183 | document.selection.Replace("[  ]", "", nFlags); 184 | break; 185 | case 901: 186 | //删除所有半角空格 187 | document.selection.Replace(" ", "", nFlags); 188 | break; 189 | case 902: 190 | //删除所有全角空格 191 | document.selection.Replace(" ", "", nFlags); 192 | break; 193 | case 809: 194 | //删除段落首尾空格 195 | document.selection.Replace("(^[  ]*)|([  ]*$)", "", nFlags); 196 | //删除段落首尾空格 197 | break; 198 | case 810: 199 | //删除段首半角空格 200 | document.selection.Replace("^ *", "", nFlags); 201 | break; 202 | case 811: 203 | //删除段首全角空格 204 | document.selection.Replace("^ *", "", nFlags); 205 | break; 206 | case 812: 207 | //删除段尾空格 208 | document.selection.Replace("[  ]*$", "", nFlags); 209 | break; 210 | case 903: 211 | //删除所有内文空格,正文 第二部 逐鹿 第一十章 开路 212 | bAnswer = confirm( 213 | "已经排好版的文本按确定,未排版的按取消(可能有些无完整“第章”量词的标题受影响,请另行补齐“第章”量词和空格)。"); 214 | if (bAnswer == true) { 215 | document.selection.Replace("^ ", "込込", nFlags); 216 | document.selection.Replace("^  ", "込込", nFlags); 217 | document.selection.Replace( 218 | "^\\n\\n(.*)[  ]+([第0-9一二三四五六七八九十零〇卷部集章节回]{1,7})[  ]+", 219 | "\\n\\n\\1虶虶\\2虶虶", 220 | nFlags); 221 | document.selection.Replace( 222 | "^\\n\\n(.*)[  ]+([第0-9一二三四五六七八九十零〇卷部集章节回]{1,7})[  ]+", 223 | "\\n\\n\\1虶虶\\2虶虶", 224 | nFlags); 225 | document.selection.Replace( 226 | "^\\n\\n(.*)[  ]+([第0-9一二三四五六七八九十零〇卷部集章节回]{1,7})", 227 | "\\n\\n\\1虶虶\\2", 228 | nFlags); 229 | document.selection.Replace( 230 | "^\\n\\n([第0-9一二三四五六七八九十零〇卷部集章节回]{1,7})[  ]+", 231 | "\\n\\n\\1虶虶", nFlags); 232 | document.selection.Replace("([a-zA-Z]+)[  ]+", "\\1虶虶", nFlags); 233 | document.selection.Replace("[  ]+([a-zA-Z]+)", "虶虶\\1", nFlags); 234 | document.selection.Replace("[  ]+", "", nFlags); 235 | document.selection.Replace("^込込", "  ", nFlags); 236 | document.selection.Replace("虶虶", " ", nFlags); 237 | } else { 238 | document.selection.Replace("^ ", "込込", nFlags); 239 | document.selection.Replace("^  ", "込込", nFlags); 240 | document.selection.Replace( 241 | "[  ]+(第[0-9一二三四五六七八九十零〇]{1,5}[卷部集章节回])[  ]+", "虶虶\\1虶虶", 242 | nFlags); 243 | document.selection.Replace("[  ]+(第[0-9一二三四五六七八九十零〇]{1,5}[卷部集章节回])", 244 | "虶虶\\1", nFlags); 245 | document.selection.Replace("(第[0-9一二三四五六七八九十零〇]{1,5}[卷部集章节回])[  ]+", 246 | "\\1虶虶", nFlags); 247 | document.selection.Replace("([a-zA-Z]+)[  ]+", "\\1虶虶", nFlags); 248 | document.selection.Replace("[  ]+([a-zA-Z]+)", "虶虶\\1", nFlags); 249 | document.selection.Replace("[  ]+", "", nFlags); 250 | document.selection.Replace("^込込", "  ", nFlags); 251 | document.selection.Replace("虶虶", " ", nFlags); 252 | } 253 | alert("请使用指南检查,若有标题中空格被删除,请用“全部替换”功能为标题相应部位添加空格"); 254 | break; 255 | case 805: 256 | //删除空行(含空格) 257 | document.selection.Replace("^[  ]*\\n", "", nFlags); 258 | break; 259 | case 700: 260 | //段首插入 261 | var insert = prompt("(默认)输入段首插入的文本", "hP"); 262 | if (insert != "") document.selection.Replace("^.+", insert + "\\0", 263 | nFlags); 264 | break; 265 | case 701: 266 | //段尾插入 267 | var insert = prompt("(默认)输入段尾插入的文本", "hP") 268 | if (insert != "") document.selection.Replace(".+$", "\\0" + insert, 269 | nFlags); 270 | break; 271 | case 1010: 272 | //「」&『』 → “” 273 | document.selection.Replace("[「『]", "“", nFlags); 274 | document.selection.Replace("[」』]", "”", nFlags); 275 | break; 276 | case 1002: 277 | //半角标点符号 → 全角标点符号 278 | document.selection.Replace(",", ",", eeFindNext | eeReplaceAll); 279 | document.selection.Replace(".", "。", eeFindNext | eeReplaceAll); 280 | document.selection.Replace("?", "?", eeFindNext | eeReplaceAll); 281 | document.selection.Replace("!", "!", eeFindNext | eeReplaceAll); 282 | document.selection.Replace(":", "∶", eeFindNext | eeReplaceAll); 283 | document.selection.Replace(";", ";", eeFindNext | eeReplaceAll); 284 | document.selection.Replace("(", "(", eeFindNext | eeReplaceAll); 285 | document.selection.Replace(")", ")", eeFindNext | eeReplaceAll); 286 | document.selection.Replace("┅", "…", eeFindNext | eeReplaceAll); 287 | document.selection.Replace("∶\x22", "∶“", eeFindNext | eeReplaceAll) //x22为引号 288 | document.selection.Replace("(。|?|!|…)\x22", "\\1”", eeFindNext | 289 | eeFindReplaceEscSeq | eeReplaceAll | 290 | eeFindReplaceRegExp); 291 | document.selection.Replace("\x22$", "”", eeFindNext | 292 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 293 | document.selection.Replace("\x22", "“", eeFindNext | eeReplaceAll); 294 | break; 295 | case 1006: 296 | //全角标点 → 半角标点 297 | document.selection.Replace(",", ",", eeFindNext | eeReplaceAll); 298 | document.selection.Replace("。", ".", eeFindNext | eeReplaceAll); 299 | document.selection.Replace("?", "?", eeFindNext | eeReplaceAll); 300 | document.selection.Replace("!", "!", eeFindNext | eeReplaceAll); 301 | document.selection.Replace("∶", ":", eeFindNext | eeReplaceAll); 302 | document.selection.Replace(";", ";", eeFindNext | eeReplaceAll); 303 | document.selection.Replace("(", "(", eeFindNext | eeReplaceAll); 304 | document.selection.Replace(")", ")", eeFindNext | eeReplaceAll); 305 | document.selection.Replace("…", "...", eeFindNext | eeReplaceAll); 306 | document.selection.Replace("∶", ":", eeFindNext | eeReplaceAll) //x22为引号 307 | document.selection.Replace("”", "\x22", eeFindNext | 308 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 309 | document.selection.Replace("“", "\x22", eeFindNext | eeReplaceAll); 310 | break; 311 | case 1007: 312 | //全角aA → 半角 aA 313 | document.selection.Replace("q", "q", eeFindNext | eeFindReplaceCase | 314 | eeReplaceAll); 315 | document.selection.Replace("w", "w", eeFindNext | eeFindReplaceCase | 316 | eeReplaceAll); 317 | document.selection.Replace("e", "e", eeFindNext | eeFindReplaceCase | 318 | eeReplaceAll); 319 | document.selection.Replace("r", "r", eeFindNext | eeFindReplaceCase | 320 | eeReplaceAll); 321 | document.selection.Replace("t", "t", eeFindNext | eeFindReplaceCase | 322 | eeReplaceAll); 323 | document.selection.Replace("y", "y", eeFindNext | eeFindReplaceCase | 324 | eeReplaceAll); 325 | document.selection.Replace("u", "u", eeFindNext | eeFindReplaceCase | 326 | eeReplaceAll); 327 | document.selection.Replace("i", "i", eeFindNext | eeFindReplaceCase | 328 | eeReplaceAll); 329 | document.selection.Replace("o", "o", eeFindNext | eeFindReplaceCase | 330 | eeReplaceAll); 331 | document.selection.Replace("p", "p", eeFindNext | eeFindReplaceCase | 332 | eeReplaceAll); 333 | document.selection.Replace("a", "a", eeFindNext | eeFindReplaceCase | 334 | eeReplaceAll); 335 | document.selection.Replace("s", "s", eeFindNext | eeFindReplaceCase | 336 | eeReplaceAll); 337 | document.selection.Replace("d", "d", eeFindNext | eeFindReplaceCase | 338 | eeReplaceAll); 339 | document.selection.Replace("f", "f", eeFindNext | eeFindReplaceCase | 340 | eeReplaceAll); 341 | document.selection.Replace("g", "g", eeFindNext | eeFindReplaceCase | 342 | eeReplaceAll); 343 | document.selection.Replace("h", "h", eeFindNext | eeFindReplaceCase | 344 | eeReplaceAll); 345 | document.selection.Replace("j", "j", eeFindNext | eeFindReplaceCase | 346 | eeReplaceAll); 347 | document.selection.Replace("k", "k", eeFindNext | eeFindReplaceCase | 348 | eeReplaceAll); 349 | document.selection.Replace("l", "l", eeFindNext | eeFindReplaceCase | 350 | eeReplaceAll); 351 | document.selection.Replace("z", "z", eeFindNext | eeFindReplaceCase | 352 | eeReplaceAll); 353 | document.selection.Replace("x", "x", eeFindNext | eeFindReplaceCase | 354 | eeReplaceAll); 355 | document.selection.Replace("c", "c", eeFindNext | eeFindReplaceCase | 356 | eeReplaceAll); 357 | document.selection.Replace("v", "v", eeFindNext | eeFindReplaceCase | 358 | eeReplaceAll); 359 | document.selection.Replace("b", "b", eeFindNext | eeFindReplaceCase | 360 | eeReplaceAll); 361 | document.selection.Replace("n", "n", eeFindNext | eeFindReplaceCase | 362 | eeReplaceAll); 363 | document.selection.Replace("m", "m", eeFindNext | eeFindReplaceCase | 364 | eeReplaceAll); 365 | document.selection.Replace("Q", "Q", eeFindNext | eeFindReplaceCase | 366 | eeReplaceAll); 367 | document.selection.Replace("W", "W", eeFindNext | eeFindReplaceCase | 368 | eeReplaceAll); 369 | document.selection.Replace("E", "E", eeFindNext | eeFindReplaceCase | 370 | eeReplaceAll); 371 | document.selection.Replace("R", "R", eeFindNext | eeFindReplaceCase | 372 | eeReplaceAll); 373 | document.selection.Replace("T", "T", eeFindNext | eeFindReplaceCase | 374 | eeReplaceAll); 375 | document.selection.Replace("Y", "Y", eeFindNext | eeFindReplaceCase | 376 | eeReplaceAll); 377 | document.selection.Replace("U", "U", eeFindNext | eeFindReplaceCase | 378 | eeReplaceAll); 379 | document.selection.Replace("I", "I", eeFindNext | eeFindReplaceCase | 380 | eeReplaceAll); 381 | document.selection.Replace("O", "O", eeFindNext | eeFindReplaceCase | 382 | eeReplaceAll); 383 | document.selection.Replace("P", "P", eeFindNext | eeFindReplaceCase | 384 | eeReplaceAll); 385 | document.selection.Replace("A", "A", eeFindNext | eeFindReplaceCase | 386 | eeReplaceAll); 387 | document.selection.Replace("S", "S", eeFindNext | eeFindReplaceCase | 388 | eeReplaceAll); 389 | document.selection.Replace("D", "D", eeFindNext | eeFindReplaceCase | 390 | eeReplaceAll); 391 | document.selection.Replace("F", "F", eeFindNext | eeFindReplaceCase | 392 | eeReplaceAll); 393 | document.selection.Replace("G", "G", eeFindNext | eeFindReplaceCase | 394 | eeReplaceAll); 395 | document.selection.Replace("H", "H", eeFindNext | eeFindReplaceCase | 396 | eeReplaceAll); 397 | document.selection.Replace("J", "J", eeFindNext | eeFindReplaceCase | 398 | eeReplaceAll); 399 | document.selection.Replace("K", "K", eeFindNext | eeFindReplaceCase | 400 | eeReplaceAll); 401 | document.selection.Replace("L", "L", eeFindNext | eeFindReplaceCase | 402 | eeReplaceAll); 403 | document.selection.Replace("Z", "Z", eeFindNext | eeFindReplaceCase | 404 | eeReplaceAll); 405 | document.selection.Replace("X", "X", eeFindNext | eeFindReplaceCase | 406 | eeReplaceAll); 407 | document.selection.Replace("C", "C", eeFindNext | eeFindReplaceCase | 408 | eeReplaceAll); 409 | document.selection.Replace("V", "V", eeFindNext | eeFindReplaceCase | 410 | eeReplaceAll); 411 | document.selection.Replace("B", "B", eeFindNext | eeFindReplaceCase | 412 | eeReplaceAll); 413 | document.selection.Replace("N", "N", eeFindNext | eeFindReplaceCase | 414 | eeReplaceAll); 415 | document.selection.Replace("M", "M", eeFindNext | eeFindReplaceCase | 416 | eeReplaceAll); 417 | break; 418 | case 1004: 419 | //半角123→全角123 420 | document.selection.Replace("1", "1", eeFindNext | eeReplaceAll); 421 | document.selection.Replace("2", "2", eeFindNext | eeReplaceAll); 422 | document.selection.Replace("3", "3", eeFindNext | eeReplaceAll); 423 | document.selection.Replace("4", "4", eeFindNext | eeReplaceAll); 424 | document.selection.Replace("5", "5", eeFindNext | eeReplaceAll); 425 | document.selection.Replace("6", "6", eeFindNext | eeReplaceAll); 426 | document.selection.Replace("7", "7", eeFindNext | eeReplaceAll); 427 | document.selection.Replace("8", "8", eeFindNext | eeReplaceAll); 428 | document.selection.Replace("9", "9", eeFindNext | eeReplaceAll); 429 | document.selection.Replace("0", "0", eeFindNext | eeReplaceAll); 430 | break; 431 | case 1003: 432 | //半角aA转全角aA 433 | document.selection.Replace("q", "q", eeFindNext | eeFindReplaceCase | 434 | eeReplaceAll); 435 | document.selection.Replace("w", "w", eeFindNext | eeFindReplaceCase | 436 | eeReplaceAll); 437 | document.selection.Replace("e", "e", eeFindNext | eeFindReplaceCase | 438 | eeReplaceAll); 439 | document.selection.Replace("r", "r", eeFindNext | eeFindReplaceCase | 440 | eeReplaceAll); 441 | document.selection.Replace("t", "t", eeFindNext | eeFindReplaceCase | 442 | eeReplaceAll); 443 | document.selection.Replace("y", "y", eeFindNext | eeFindReplaceCase | 444 | eeReplaceAll); 445 | document.selection.Replace("u", "u", eeFindNext | eeFindReplaceCase | 446 | eeReplaceAll); 447 | document.selection.Replace("i", "i", eeFindNext | eeFindReplaceCase | 448 | eeReplaceAll); 449 | document.selection.Replace("o", "o", eeFindNext | eeFindReplaceCase | 450 | eeReplaceAll); 451 | document.selection.Replace("p", "p", eeFindNext | eeFindReplaceCase | 452 | eeReplaceAll); 453 | document.selection.Replace("a", "a", eeFindNext | eeFindReplaceCase | 454 | eeReplaceAll); 455 | document.selection.Replace("s", "s", eeFindNext | eeFindReplaceCase | 456 | eeReplaceAll); 457 | document.selection.Replace("d", "d", eeFindNext | eeFindReplaceCase | 458 | eeReplaceAll); 459 | document.selection.Replace("f", "f", eeFindNext | eeFindReplaceCase | 460 | eeReplaceAll); 461 | document.selection.Replace("g", "g", eeFindNext | eeFindReplaceCase | 462 | eeReplaceAll); 463 | document.selection.Replace("h", "h", eeFindNext | eeFindReplaceCase | 464 | eeReplaceAll); 465 | document.selection.Replace("j", "j", eeFindNext | eeFindReplaceCase | 466 | eeReplaceAll); 467 | document.selection.Replace("k", "k", eeFindNext | eeFindReplaceCase | 468 | eeReplaceAll); 469 | document.selection.Replace("l", "l", eeFindNext | eeFindReplaceCase | 470 | eeReplaceAll); 471 | document.selection.Replace("z", "z", eeFindNext | eeFindReplaceCase | 472 | eeReplaceAll); 473 | document.selection.Replace("x", "x", eeFindNext | eeFindReplaceCase | 474 | eeReplaceAll); 475 | document.selection.Replace("c", "c", eeFindNext | eeFindReplaceCase | 476 | eeReplaceAll); 477 | document.selection.Replace("v", "v", eeFindNext | eeFindReplaceCase | 478 | eeReplaceAll); 479 | document.selection.Replace("b", "b", eeFindNext | eeFindReplaceCase | 480 | eeReplaceAll); 481 | document.selection.Replace("n", "n", eeFindNext | eeFindReplaceCase | 482 | eeReplaceAll); 483 | document.selection.Replace("m", "m", eeFindNext | eeFindReplaceCase | 484 | eeReplaceAll); 485 | document.selection.Replace("Q", "Q", eeFindNext | eeFindReplaceCase | 486 | eeReplaceAll); 487 | document.selection.Replace("W", "W", eeFindNext | eeFindReplaceCase | 488 | eeReplaceAll); 489 | document.selection.Replace("E", "E", eeFindNext | eeFindReplaceCase | 490 | eeReplaceAll); 491 | document.selection.Replace("R", "R", eeFindNext | eeFindReplaceCase | 492 | eeReplaceAll); 493 | document.selection.Replace("T", "T", eeFindNext | eeFindReplaceCase | 494 | eeReplaceAll); 495 | document.selection.Replace("Y", "Y", eeFindNext | eeFindReplaceCase | 496 | eeReplaceAll); 497 | document.selection.Replace("U", "U", eeFindNext | eeFindReplaceCase | 498 | eeReplaceAll); 499 | document.selection.Replace("I", "I", eeFindNext | eeFindReplaceCase | 500 | eeReplaceAll); 501 | document.selection.Replace("O", "O", eeFindNext | eeFindReplaceCase | 502 | eeReplaceAll); 503 | document.selection.Replace("P", "P", eeFindNext | eeFindReplaceCase | 504 | eeReplaceAll); 505 | document.selection.Replace("A", "A", eeFindNext | eeFindReplaceCase | 506 | eeReplaceAll); 507 | document.selection.Replace("S", "S", eeFindNext | eeFindReplaceCase | 508 | eeReplaceAll); 509 | document.selection.Replace("D", "D", eeFindNext | eeFindReplaceCase | 510 | eeReplaceAll); 511 | document.selection.Replace("F", "F", eeFindNext | eeFindReplaceCase | 512 | eeReplaceAll); 513 | document.selection.Replace("G", "G", eeFindNext | eeFindReplaceCase | 514 | eeReplaceAll); 515 | document.selection.Replace("H", "H", eeFindNext | eeFindReplaceCase | 516 | eeReplaceAll); 517 | document.selection.Replace("J", "J", eeFindNext | eeFindReplaceCase | 518 | eeReplaceAll); 519 | document.selection.Replace("K", "K", eeFindNext | eeFindReplaceCase | 520 | eeReplaceAll); 521 | document.selection.Replace("L", "L", eeFindNext | eeFindReplaceCase | 522 | eeReplaceAll); 523 | document.selection.Replace("Z", "Z", eeFindNext | eeFindReplaceCase | 524 | eeReplaceAll); 525 | document.selection.Replace("X", "X", eeFindNext | eeFindReplaceCase | 526 | eeReplaceAll); 527 | document.selection.Replace("C", "C", eeFindNext | eeFindReplaceCase | 528 | eeReplaceAll); 529 | document.selection.Replace("V", "V", eeFindNext | eeFindReplaceCase | 530 | eeReplaceAll); 531 | document.selection.Replace("B", "B", eeFindNext | eeFindReplaceCase | 532 | eeReplaceAll); 533 | document.selection.Replace("N", "N", eeFindNext | eeFindReplaceCase | 534 | eeReplaceAll); 535 | document.selection.Replace("M", "M", eeFindNext | eeFindReplaceCase | 536 | eeReplaceAll); 537 | break; 538 | case 707: 539 | //CR+LF 540 | bAnswer = confirm("是否更改换行为CR+LF(Windows)?"); 541 | if (bAnswer == true) { 542 | editor.ExecuteCommandByID(4105); 543 | } 544 | break; 545 | case 708: 546 | //ANSI 547 | bAnswer = confirm("是否更改编码为ANSI(系统默认GB2312)?"); 548 | if (bAnswer == true) { 549 | editor.ExecuteCommandByID(4102); 550 | } 551 | break; 552 | case 1201: 553 | //正则表达式规则 554 | alert( 555 | "使用一系列的特殊字符来获取字符串,提供与预期的搜索结果匹配的确切文本来进行字符串的搜索和替换操作。\n\n正则表达式从某种意义上可说是一种语言, 通过简短的一行代码即可以精确描述要匹配的复杂文本。\n\n正则表达式是普通字符和元字符组合的一种模式。它的结构与算术表达式的结构类似, 各种元字符和运算符可以将小的表达式组合起来,创建大的表达式。通过在一对分隔符之间放置表达式模式的各种组件,就可以构建正则表达式。" 556 | ); 557 | break; 558 | case 1202: 559 | //正则表达式字符 560 | alert( 561 | "emeditor的替换窗口,选中使用正则表达式,在上面的两个输入框的右侧都有一个向右的箭头,点击就会打开特殊字符列表。\n\n1. 特殊字符是指\n( . * ? + ( ) { } [ ] ^ $ \ ) \n2.普通字符,是指除了特殊字符之外的所有其他字符。\n而这些特殊字符也可以通过前面加上\\前缀而变为普通字符。\n\n \. 匹配除换行符(\\n)之外的任何单个字符。 \n( ) 括号表达式。 \n[ ] 中括号表达式。\n在方括号内包含一个或多个字符。普通字符在中括号内表示本身,大多数特殊字符在中括号内作为普通字符。\n除了转义字符\\, (要包含\\, 需要使用\\\) \n可以用连字符 '-' 将范围中的开始字符和结束字符分开。单个字符的字符值确定范围内的相对顺序。\n如果需要匹配不属于列表或范围内的任何字符,可以在列表开头加上\^前缀。\n中括号表达式还可进行组合, 如 [A-Za-z0-9] 匹配A-Z, a-z, 0-9 。\n\n字符\\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。\n例如,字符 n 匹配字符 n。\\n 匹配换行符。 \\\\ 匹配 \\, \\\( 匹配 \(。 \n\n\| 替换字符, 对\|左右的两个项分别匹配进行选择。或者说, 就是逻辑的OR的概念 \n\n{ } 标记限定符表达式。 指定正则表达式的某个部分必须出现的次数。\n * 零次或多次匹配前面的字符或子表达式。 \n+ 一次或多次匹配前面的字符或子表达式。\n? 零次或一次匹配前面的字符或子表达式。\n{n} n 是非负整数。匹配 n 次。 \n{n,} n 是非负整数。至少匹配 n 次。 \n{n,m} m 和 n 是非负整数,其中 n <= m。至少匹配 n 次,至多匹配 m 次。" 562 | ); 563 | break; 564 | case 1200: 565 | //认识正则表达式 566 | alert( 567 | "排版脚本中使用正则表达式来进行批量化的文本替换处理,首先编辑脚本语言,会打开编辑界面。这里的文本,就是使用脚本规范编写。其中的一行一行的公式才是使用了正则表达式。\n例如:\n document\.selection\.Replace\(\"\^\.\+\"\,\"a\\\\0b\",nFlags\);//给\n括号内加引号的部分\(\"\.\+\"\,\" \\\\0 \"\)才是正则表达式。\n其中\^表示从行首开始,\.表示任意字符,\+表示重复前一个字符至少一次,\\\\0表示前面表达式获取的所有内容。\n document\.selection\.Replace的意思就是把括号内左引号部分表达式替换为右引号表达式部分。\n左表达式获取一行中所有内容,右表达式则把获取的整个内容的左边加上a,右边加上b。\n\n现在我们就可以使用复制粘贴,建立一行一行的表达式了。从一个case开始,到break;结束,中间的内容都大同小异,我们所要更改的就是引号内的正则表达式。\n用各种正则表达式的特殊符号,来捕获成为获取按一定规则构成的一系列字符或句子。\n\n具体要多看多揣摩已有的脚本。" 568 | ); 569 | break; 570 | case 1203: 571 | //正则表达式符号使用须知 572 | alert( 573 | "1.左表达式必须用\\\\来引用特殊字符,而右表达式中所有特殊字符都可以作为普通字符使用。\n但是不要滥用\\\\,如果在普通字符前用\\\\会导致错误。\n\n2.要在表达式中使用半角双引号只能用“\\x22”代替。对于其他特殊字符也可以使用\\xnn 引用ASCII代码中编号为nn(两位十六进制0-255)的字符。 \n\n3.正则表达式中不需要反斜杠引用直接可以使用的半角普通符号:<>'-;\n\n4.特殊符号必须使用双斜杠\\\\来取消这些字符的特殊意义转换成普通符号:|\()^$.*+{}[]?\n\n5.全角符号可以在表达式中直接引用。\n\n6.使用\\unnnn 引用ASCII代码中编号为nnnn(四位十六进制)的字符。\n匹配中文字符的正则表达式: [\\u4e00-\\u9fa5](其中编号为ASCII代码中中文的起始和结尾两个字的编码)\n匹配双字节字符(包括汉字在内):[^\\x00-\\xff]\n" 574 | ); 575 | break; 576 | case 1204: 577 | //正则表达式易犯错误 578 | alert( 579 | "1.\[\-\]中要引用\-必须使用\[\\-\],否则被当作字符范围了。\n2.(.*)和(.+)的区别,前一个是至少有零个字符,后一个至少有一个字符,在某些场合是很重要的区分。经常容易混淆导致出错,所以要经过反复测试。\n3.\. 不匹配除换行符 \n4.\^表示从行首开始,但如果要捕获的内容只是看上去从行首开始,却会导致出错。\n5.对于操作符如“\\n”,在表达式中要写成双斜杠“\\\\n”,第一个斜杠表示后面是特殊字符或操作符,特殊字符只使用单斜杠“\\”即可。在表达式右侧特殊字符可以不用斜杠,直接当作普通字符。\n5.使用\\\\0会获取前面引号内的整个表达式,而不是仅仅在括号内的子表达式。" 580 | ); 581 | break; 582 | case 1205: 583 | //正则表达式使用技巧 584 | alert( 585 | "1.在使用脚本的时候,在弹出的大多数对话框中,可以使用正则表达式。特别是输入关键词的时候,使用(.+)来间隔第二个关键词。使用([^ ]+)表示用非空格字符来作为间隔。使用中括号表达式([卷章回节集部册])来引用定义范围内的关键词。\n\n2.(集|册|部|卷|章|回|节)和[卷章回节集部册]是一样的。括号表达式用“|”表示“或者”,中括号表达式不需要任何符号表示包括,使用“^”表示不包括。\n\n3.\\(.*\\)匹配括号中的字“(上)”。\n\n4.(.+)表示至少有一个任意字符,(.*)表示至少有零个任意字符。" 586 | ); 587 | break; 588 | case 1206: 589 | //常见正则表达式 590 | alert( 591 | "“[^ ]*关键词.*”,或“第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]”//匹配非空格+关键词+任意字符或者第xx章(xx为非空格字符至少有一个最多为五个)。\n\n document\.selection\.Replace\(\" \"\,\" \"\,nFlags\)\;//全角改成半角空格\n\ndocument\.selection\.Replace\(\"\^\\\\n\"\,\"\"\,nFlags\)\;//删除空行\n\ndocument\.selection\.Replace\(\"\^\(\.\+\)\\\\n\\ \\1\"\,\"\\ \\1\"\,nFlags\)\;//删除重复行\n\ndocument\.selection\.Replace\(\"\^Copyright \.\+\\\\n\.\+\\\\n\.\+\\\\n\.\+\"\,\"\"\,nFlags\)\;//删除Copyright所在行及其下三行的内容\n\ndocument\.selection\.Replace\(\"\(\[\^\"\+separator\+\"\]\)\\\\n\"\,\"\\ \\1\"\,nFlags\)\;//标点分段\n\ndocument\.selection\.Replace\(\"\(\^\[  \]\*\)\|\(\[  \]\*\$\)\"\,\"\"\,nFlags\)\;//删除段落首尾空格" 592 | ); 593 | break; 594 | case 1207: 595 | //常见标题正则表达式 596 | alert( 597 | "1.“第[^ ]{1,5}[册集部卷章回节]”//匹配非空格+关键词+任意字符或者第xx章(xx为非空格字符至少有一个最多为五个)。\n使用指南:有可能出现“状元及第的陈焕章”这种情况导致错误,需要手动处理,或者改用更详细的表达式。\n\n“第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]”\n\n2.“[一二三四五六七八九十两零百]+、”对应于:“一十、”\n\n3.“[0-9]\\\\.”对应于“10.”\n" 598 | ); 599 | break; 600 | case 10505: 601 | //第1章 → 第001章 602 | alert("本功能只针对“第xx(集|册|部|卷|章|回|节)”这种格式的标题。"); 603 | document.selection.Replace("(第)(\\d)([册集部卷章回节])", "\\100\\2\\3", nFlags); 604 | document.selection.Replace("(第)(\\d\\d)([册集部卷章回节])", "\\10\\2\\3", 605 | nFlags); 606 | break; 607 | case 10800: 608 | //删除空行 609 | document.selection.Replace("^[  ]+\\n", "", nFlags); 610 | //段首二全角空格 611 | document.selection.Replace("^([^  ]+)", "  \\1", nFlags); 612 | document.selection.Replace("^[  ]+", "  ", nFlags); 613 | //删除空行(原无空格情况) 614 | document.selection.Replace("^\\n", "", nFlags); 615 | var config = getTitleRegex("去掉标题前空格,增加文首三空行,段间两空行,输入标题表达式(或.*关键词.*),否则取消。") 616 | if (config != null) { 617 | var title = config["title_regex"]; 618 | if (config["include_inner_text"]) 619 | document.selection.Replace("^(  [^\\s](.*?))(?=内容简介|作品相关|正文|楔子|序[册集部卷章回节]{0,1}|" + title + ")", "\\1\\n", nFlags);  620 | var target = config["sep_in_title_regex"]?"\\1\\3":"\\1 \\3"; 621 | //标题格式整理 622 | document.selection.Replace("^  (" + title + ")([  ]*)(.*)$", target, nFlags);   623 | document.selection.Replace("^  (" + "内容简介|作品相关|正文|楔子)([  ]*)(.*)$", "\\1 \\3", nFlags); 624 | document.selection.Replace("^  (" + "序[册集部卷章回节]{0,1})([  ]*)(.*)$", target, nFlags); 625 | document.selection.Replace(" $", "", nFlags); 626 | //段间空行 627 | document.selection.Replace("^([  ]*)(" + config["title_regex"] + ")(.*)$", "\\n\\n\\2\\3", nFlags); 628 | } 629 | //删除段尾空格 630 | document.selection.Replace("[  ]+$", "", nFlags); 631 | document.selection.Replace("([^ ]+)\\n\\n\\n\\n([^ ]+)", 632 | "\\1\\n\\n\\n\\2", nFlags); 633 | document.selection.Replace("([^ ]+)\\n\\n([^ ]+)", "\\1\\n\\2", nFlags); 634 | break; 635 | case 10801: 636 | document.selection.Replace("^[  ]+\\n", "", nFlags); 637 | //段首二全角空格 638 | document.selection.Replace("^([^  ]+)", "  \\1", nFlags); 639 | document.selection.Replace("^[  ]+", "  ", nFlags); 640 | //删除空行(原无空格情况) 641 | document.selection.Replace("^\\n", "", nFlags); 642 | var config = getTitleRegex("去掉标题前空格,增加文首三空行,段间两空行,输入各级标题表达式(或.*关键词.*),否则取消。", true) 643 | if (config != null) { 644 | var titlelevelnum = config["title_regex"].length; 645 | 646 | var splitRegex = config["include_inner_text"]?"^(  .*?)":""; 647 | var findRegex = config["include_inner_text"]?"^  .*?(?!\\n)":"^  (?!\\n)"; 648 | for (var i = 0; i < titlelevelnum - 1; ++i) 649 | { 650 | splitRegex += "((" + config["title_regex"][i] + ")[  ]*(.*?)(?=(" + config["title_regex"][i+1] + ")?))?"; 651 | findRegex += "((" + config["title_regex"][i] + ")[  ]*(.*?))?"; 652 | } 653 | splitRegex += "((" + config["title_regex"][titlelevelnum-1] + ")[  ]*(.*))?\n"; 654 | splitRegex = new RegExp(splitRegex); 655 | findRegex += "((" + config["title_regex"][titlelevelnum-1] + ")[  ]*(.*))?\\n"; 656 | 657 | var titlesep = config["sep_in_title_regex"]?"":" "; 658 | var offset = config["include_inner_text"]?3:2; 659 | previousTitle = new Array(titlelevelnum); 660 | lastleveltitlehandled = true; 661 | 662 | document.selection.StartOfDocument(); 663 | while(document.selection.Find(findRegex, eeFindReplaceRegExp | eeFindNext)) 664 | { 665 | m = document.selection.Text.match(splitRegex); 666 | 667 | target = (config["include_inner_text"] && m[1] != "  ")?m[1] + "\n":""; 668 | target += lastleveltitlehandled?"\n\n":""; 669 | 670 | for (var i = 0; i < titlelevelnum; ++i) 671 | { 672 | if (m[4*i+offset] != "" && m[4*i+offset] != previousTitle[i]) 673 | { 674 | target += m[4*i+offset] + titlesep + m[4*i+offset+1] + "\n"; 675 | previousTitle[i] = m[4*i+offset]; 676 | lastleveltitlehandled = (i == titlelevelnum - 1); 677 | } 678 | else 679 | lastleveltitlehandled = false; 680 | } 681 | document.selection.Text = target 682 | } 683 | } 684 | document.selection.Replace("[  ]+$", "", nFlags); 685 | document.selection.Replace("([^ ]+)\\n\\n\\n\\n([^ ]+)", 686 | "\\1\\n\\n\\n\\2", nFlags); 687 | document.selection.Replace("([^ ]+)\\n\\n([^ ]+)", "\\1\\n\\2", nFlags); 688 | break; 689 | case 10604: 690 | //删除标题前后空格 691 | var result = getTitleRegex("(默认)输入标题的表达式(.*关键词.*),或“册集部卷章回节”放入下面。") //prompt("(默认)输入标题的表达式(.*关键词.*),或“册集部卷章回节”放入下面。", "第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]"); 692 | if (result != null) { 693 | var title = config["title_regex"]; 694 | document.selection.Replace("[  ]+(" + title + ")", "\\1", nFlags); 695 | document.selection.Replace("(" + title + ")[  ]+", "\\2 ", nFlags); 696 | document.selection.Replace("  ", " ", nFlags); 697 | document.selection.Replace("  ", " ", nFlags); 698 | document.selection.Replace("[ ]+", " ", nFlags); 699 | document.selection.Replace("^[  ]+([^  ]+) (.*)(" + title + 700 | ")(.*) ([^  ]+)[  ]+$", "\\1 \\2\\3\\4 \\5", 701 | nFlags); 702 | document.selection.Replace("^[  ]+([^  ]+)(.*)(" + title + 703 | ")[  ]+$", "\\1\\2\\3", nFlags); 704 | document.selection.Replace("^[  ]+(" + title + ")[  ]+$", "\\1", 705 | nFlags); 706 | document.selection.Replace("^[  ]+(" + title + 707 | ")(.*)([^  ]+)[  ]+$", "\\1\\2\\3", nFlags); 708 | } 709 | break; 710 | case 1005: 711 | //替换全角空格为半角空格 712 | bAnswer = confirm("警告:如果已经排好版面,行首加了空格,请勿使用。"); 713 | if (bAnswer == true) { 714 | document.selection.Replace("[ ]+", " ", nFlags); 715 | } 716 | break; 717 | case 1001: 718 | //替换半角空格为全角空格 719 | bAnswer = confirm("警告:如果已经排好版面,请勿使用。"); 720 | if (bAnswer == true) { 721 | document.selection.Replace("[ ]+", " ", nFlags); 722 | document.selection.Replace("[ ]+", "  ", nFlags); 723 | } 724 | break; 725 | case 10607: 726 | //删除重复标题 727 | alert("使用本功能有可能导致错误删除,请慎用。\n例如:\n第四部\n机械工业部第四部下属单位"); 728 | var title = prompt("(默认)输入标题的表达式(.*关键词.*)", 729 | "第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]") 730 | if (title != "") { 731 | document.selection.Replace("(" + title + ")\\n(" + title + ")\\n", 732 | "\\1\\n", nFlags); 733 | document.selection.Replace("(" + title + ")\\n("   + title + ")\\n", 734 | "\\1\\n", nFlags); 735 | document.selection.Replace("(.*)(" + title + ")(.*)\\n{1,3}(.*)(" + 736 | title + ")(.*)\\n", "\\1\\2\\3\\n", 737 | nFlags); 738 | } 739 | break; 740 | case 904: 741 | //统一所有空格为一个半角空格 742 | bAnswer = confirm("警告:如果已经排好版面,请勿使用。"); 743 | if (bAnswer == true) { 744 | document.selection.Replace("[  ]+$", "", nFlags); 745 | document.selection.Replace("[  ]+", " ", nFlags); 746 | } 747 | break; 748 | case 905: 749 | //统一所有空格为两个全角空格 750 | bAnswer = confirm("警告:如果已经排好版面,请勿使用。"); 751 | if (bAnswer == true) { 752 | document.selection.Replace("[  ]+$", "", nFlags); 753 | document.selection.Replace("[  ]+", "  ", nFlags); 754 | } 755 | break; 756 | case 806: 757 | //删除空行的空格,不含空行 758 | document.selection.Replace("^[  ]*$", "", nFlags); 759 | break; 760 | case 10804: 761 | //删除硬回车 762 | document.selection.Replace("^[ ]+\\n", "", nFlags); 763 | bAnswer = confirm( 764 | "请事先将半角标点转为全角标点,以便更好的处理。\n按确定,删除所有空行,能够全面删除硬回车,适合单独一篇内容。\n按取消,保留原有空行,适合已排好版的多篇内容,或许有遗漏。\n\n可能对于某些内文分段的小标题会有错误处理,慎重处理。\n\n例如:效果迅速而神奇。四、它对心脑血管系统有作用\n在“四”前面要换行处理。输入相应的正则表达式即可。\n“[一二三四五六七八九十两零百]+、”对应于:“一十、”\n“[0-9]\\.”对应于“10.”\n" 765 | ); 766 | if (bAnswer == true) { 767 | document.selection.Replace("^\\n", "", nFlags); 768 | document.selection.Replace(" \\n([^ ])", "\\1", nFlags); 769 | } else { 770 | document.selection.Replace(" \\n([^ ])", "\\1", nFlags); 771 | } 772 | document.selection.Replace("([^  *]+)\\n([^  ])", "\\1\\2", nFlags); 773 | var title = prompt("在小标题前增加换行,标题的表达式(或.*关键词.*),否则取消。", 774 | "第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节],或,[一二三四五六七八九十两零百]+、"); 775 | if (title != "") { 776 | document.selection.Replace("(" + title + ")", "\\n\\1", nFlags); 777 | } 778 | break; 779 | case 10802: 780 | //段落重排 781 | var separator = prompt("若已将半角标点转为全角,(默认)输入分段依据的字符或关键词。", "[。:?!…]"); 782 | if (separator != "") { 783 | document.selection.Replace("  ", "\\n\\0", nFlags); 784 | document.selection.Replace("(^[  ]*)|([  ]*$)", "", nFlags); 785 | //去段首尾空格 786 | document.selection.Replace("(" + separator + ")", "\\1\\n", nFlags); 787 | //标点分段 788 | document.selection.Replace("\\n[  ]*([,。:?!…“”)》—])", "\\1", nFlags); 789 | //去段首标点 790 | document.selection.Replace("…\\n…", "……", nFlags); 791 | document.selection.Replace("([,、;《(])([^" + separator + "]*)\\n", 792 | "\\1\\2", nFlags); 793 | document.selection.Replace("“([^”]+)\\n", "“\\1", nFlags); 794 | document.selection.Replace("\\n([^“]+)”", "\\1”", nFlags); 795 | document.selection.Replace("?\\n([^ ]+))”", "\\1”", nFlags); 796 | document.selection.Replace("·", "\\n·", nFlags); 797 | } 798 | document.selection.Replace("^(.+)", "  \\1", nFlags); 799 | //段首加空格 800 | bAnswer = confirm("按确定去掉文中所有空行(慎用),按取消可以事后手动删除不必要的空行。"); 801 | if (bAnswer == true) { 802 | document.selection.Replace("^\\n", "", nFlags); 803 | } 804 | document.selection.Replace("([^ ]+)  ([^ ]+)", "\\1\\n\\2", nFlags); 805 | var title = prompt("在段间增加两空行,(默认)输入标题的表达式(或.*关键词.*),否则取消。", 806 | "第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]"); 807 | if (title != "") { 808 | document.selection.Replace("^(.*)(" + title + ")(.*)$", "\\n\\n\\0", 809 | nFlags); 810 | } 811 | break; 812 | case 10803: 813 | //段落重排(删错误回车,重新分段) 814 | document.selection.Replace("^\\n\\n", "【临时标记】", nFlags); 815 | document.selection.Replace("([^  ]+)\\n([^  ]+)", "\\1\\2", nFlags); 816 | document.selection.Replace("([^  ]+)\\n([^  ]+)", "\\1\\2", nFlags); 817 | document.selection.Replace("([^  ]+)\\n([^  ]+)", "\\1\\2", nFlags); 818 | document.selection.Replace("([^  ]+)\\n([^  ]+)", "\\1\\2", nFlags); 819 | document.selection.Replace("([^  ]+)\\n([^  ]+)", "\\1\\2", nFlags); 820 | document.selection.Replace("([^  ]+)\\n([^  ]+)", "\\1\\2", nFlags); 821 | document.selection.Replace("([^  ]+)\\n([^  ]+)", "\\1\\2", nFlags); 822 | document.selection.Replace("([^  ]+)[  ]+", "\\1\\n  ", nFlags); 823 | document.selection.Replace("【临时标记】", "\\n\\n\\n", nFlags); 824 | break; 825 | case 10807: 826 | //段落间统一为两个空行(去除空格) 827 | document.selection.Replace("^[  ]+\\n", "", nFlags); 828 | //去空行 829 | document.selection.Replace("(.+)\\n\\n(.+)", "\\1\\n\\2", nFlags); 830 | document.selection.Replace("^\\n\\n\\n\\n\\n", "\\n\\n", nFlags); 831 | document.selection.Replace("^\\n\\n\\n\\n", "\\n\\n", nFlags); 832 | document.selection.Replace("^\\n\\n\\n", "\\n\\n", nFlags); 833 | document.selection.Replace("(.+)\\n\\n(.+)", "\\1\\n\\2", nFlags); 834 | var title = prompt("在段间增加两空行,(默认)输入标题的表达式(或.*关键词.*),否则取消。", 835 | "第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]"); 836 | if (title != "") { 837 | document.selection.Replace("^\\n", "", nFlags); 838 | document.selection.Replace("^(.*)(" + title + ")(.*)$", "\\n\\n\\0", 839 | nFlags); 840 | } 841 | break; 842 | case 10808: 843 | //段落间加入两个空行 844 | var title = prompt("(默认)输入标题的表达式(或自行输入.*关键词.*),否则取消。", 845 | "第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]"); 846 | if (title != "") { 847 | document.selection.Replace("^\\n", "", nFlags); 848 | document.selection.Replace("^(.*)(" + title + ")(.*)$", "\\n\\n\\0", 849 | nFlags); 850 | } 851 | break; 852 | case 1012: 853 | //规范段首标点到上段尾 854 | bAnswer = confirm("半角标点先要转换为全角标点,以便更有效处理。"); 855 | if (bAnswer == true) { 856 | document.selection.Replace("(^.*)\\n^[  ]*\\”", "\\1”", nFlags); 857 | document.selection.Replace("(^.*)\\n^[  ]*\\。", "\\1。", nFlags); 858 | document.selection.Replace("(^.*)\\n^[  ]*\\)", "\\1)", nFlags); 859 | document.selection.Replace("(^.*)\\n^[  ]*\\】", "\\1】", nFlags); 860 | document.selection.Replace("(^.*)\\n^[  ]*\\;", "\\1;", nFlags); 861 | document.selection.Replace("(^.*)\\n^[  ]*\\,", "\\1,", nFlags); 862 | document.selection.Replace("(^.*)\\n^[  ]*\\?", "\\1?", nFlags); 863 | document.selection.Replace("(^.*)\\n^[  ]*\\:", "\\1:", nFlags); 864 | } else { 865 | break; 866 | } 867 | break; 868 | case 1011: 869 | //规范省略号 870 | document.selection.Replace("。。。", "…", nFlags); 871 | document.selection.Replace("。。", "…", nFlags); 872 | document.selection.Replace("。…", "…", nFlags); 873 | document.selection.Replace("…。", "…", nFlags); 874 | document.selection.Replace("[……]+", "……", nFlags); 875 | document.selection.Replace("”…", "”\n……", nFlags); 876 | document.selection.Replace("[………]+", "……", nFlags); 877 | document.selection.Replace("[^…][…][^…]", "……", nFlags); 878 | break; 879 | case 10609: 880 | //标题加章节量词 881 | bAnswer = confirm( 882 | "1.有可能把标题内容误作标题序数(比如“十二章 天下第一”,会处理为“第十二章 天下第一章”),使用指南检查。\n2.处理对象必须是已经排好版分好段的内容。而且标题中的各个词之间已加好空格,标题前无空格。(比如“十二章天下第一”,要处理为“十二章 天下第一”)\n3.\n\n按确定,自动分析序数,添加“第章”量词。\n按取消,手动给标题中的指定位置添加“第章”量词。" 883 | ); 884 | if (bAnswer == true) { 885 | var title = prompt("(默认)输入标题中序数的关键词,表达式。", 886 | "[0-9一二三四五六七八九十两百零〇]{1,5}"); 887 | if (title != "") { 888 | document.selection.Replace("^\\n\\n([^  第0-9一二三四五六七八九十两百零〇]*)(" + 889 | title + ")([^集部卷章节回]*)", 890 | "\\n\\n\\1 第\\2章\\3", nFlags); 891 | document.selection.Replace("^\\n\\n([^  第0-9一二三四五六七八九十两百零〇]*)(" + 892 | title + ")([集部卷章节回])", 893 | "\\n\\n\\1 第\\2\\3", 894 | nFlags); 895 | } 896 | } else { 897 | var title = prompt("(默认)输入需要添加的一个量词“章回节”。", "章") // 898 | if (title != "") { 899 | var insert = prompt("要给以空格分开的标题的第几个词加“第章”量词(卷六 织网 一一)。", 900 | "在此输入1-5之间的数字"); 901 | if (insert == 1) { 902 | document.selection.Replace("^([^  ]+)", "\\第\\1" + title + 903 | "", nFlags); 904 | //加“第章”,加空格 905 | } 906 | if (insert == 2) { 907 | document.selection.Replace("^([^  ]+) ([^  ]+)", 908 | "\\\\1 第\\2" + title + "", nFlags); 909 | } 910 | if (insert == 3) { 911 | document.selection.Replace("^([^  ]+) ([^  ]+) ([^  ]+)", 912 | "\\\\1 \\2 第\\3" + title + "", 913 | nFlags); 914 | } 915 | if (insert == 4) { 916 | document.selection.Replace( 917 | "^([^  ]+) ([^  ]+) ([^  ]+) ([^  ]+)", 918 | "\\\\1 \\2 \\3 第\\4" + title + 919 | "", 920 | nFlags); 921 | } 922 | if (insert == 5) { 923 | document.selection.Replace( 924 | "^([^  ]+) ([^  ]+) ([^  ]+) ([^  ]+) ([^  ]+)", 925 | "\\\\1 \\2 \\3 \\4 第\\5" + title + "", 926 | nFlags); 927 | } 928 | } 929 | } 930 | document.selection.Replace("第第", "第", nFlags); 931 | //去“第” 932 | document.selection.Replace("第第", "第", nFlags); 933 | //去“第” 934 | document.selection.Replace("章章", "章", nFlags); 935 | //去“章” 936 | document.selection.Replace("章章", "章", nFlags); 937 | //去“章” 938 | document.selection.Replace("章节", "节", nFlags); 939 | document.selection.Replace("章回", "回", nFlags); 940 | document.selection.Replace("章卷", "卷", nFlags); 941 | document.selection.Replace("章部", "部", nFlags); 942 | document.selection.Replace("第章", "第", nFlags); 943 | document.selection.Replace("^[ ]+", "", nFlags); 944 | break; 945 | case 10601: 946 | //标题前插入二个空行 947 | var title = prompt("(默认)输入标题的关键词(第一个字词),下面方括号中可用“册集部卷章回节”。", 948 | "第[0-9一二三四五六七八九十两百零〇]{1,5}[部]"); 949 | if (title != "") { 950 | document.selection.Replace("^(" + title + ")(.*)$\\n", 951 | "\n\n\\1\\2\n", nFlags); 952 | document.selection.Replace("^ +$", "", nFlags); 953 | } else { 954 | break; 955 | } 956 | break; 957 | case 10602: 958 | ///标题前插入三个空行 959 | var title = prompt("(默认)输入标题的关键词(第一个字词),下面方括号中可用“册集部卷章回节”。", 960 | "第[0-9一二三四五六七八九十两百零〇]{1,5}[部]"); 961 | if (title != "") { 962 | document.selection.Replace("^(" + title + ")(.*)$\\n", 963 | "\n\n\n\\1\\2\n", nFlags); 964 | document.selection.Replace("^ +$", "", nFlags); 965 | } else { 966 | break; 967 | } 968 | break; 969 | case 10608: 970 | //标题章节前后插入一个半角空格 971 | var title = prompt("(默认)输入标题表达式(.*关键词.*),可能正文中有相似文字会被加上空格。", 972 | "第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]"); 973 | if (title != "") { 974 | document.selection.Replace("(" + title + ")", " \\1 ", nFlags); 975 | document.selection.Replace("[ ]+(" + title + ")[ ]+", " \\1 ", 976 | nFlags); 977 | document.selection.Replace("[ ]+$", "", nFlags); 978 | document.selection.Replace("^[ ]+", "", nFlags); 979 | } 980 | break; 981 | case 10605: 982 | //删除标题前空行 983 | var title = prompt("(默认)输入标题的正则表达式(.*关键词.*),下面方括号中可用“册集部卷章回节”。", 984 | "第[0-9一二三四五六七八九十两百零〇]{1,5}[部]"); 985 | if (title != "") { 986 | document.selection.Replace("^[ ]*$", "", nFlags); 987 | document.selection.Replace("^\\n(" + title + ")", "\\1", nFlags); 988 | //统一标题空格格式 989 | document.selection.Replace("[ ]+", " ", nFlags); 990 | } else { 991 | break; 992 | } 993 | break; 994 | case 10606: 995 | //删除标题后空行(卷名 第123章 ) 996 | var title = prompt("(默认)输入标题的正则表达式(.*关键词.*),下面方括号中可用“册集部卷章回节”。", 997 | "第[0-9一二三四五六七八九十两百零〇]{1,5}[章]"); 998 | if (title != "") { 999 | document.selection.Replace("^[ ]*$", "", nFlags); 1000 | document.selection.Replace("[ ]+", " ", nFlags); 1001 | document.selection.Replace("(.*)(" + title + ")(.*)\\n\\n\\n\\n", 1002 | "\\1\\2\\3\\n", nFlags); 1003 | document.selection.Replace("(.*)(" + title + ")(.*)\\n\\n\\n", 1004 | "\\1\\2\\3\\n", nFlags); 1005 | document.selection.Replace("(.*)(" + title + ")(.*)\\n\\n", 1006 | "\\1\\2\\3\\n", nFlags); 1007 | document.selection.Replace("(.+)\\n\\n(.+)", "\\1\\n\\2", nFlags); 1008 | //统一标题空格格式 1009 | } else { 1010 | break; 1011 | } 1012 | break; 1013 | case 10603: 1014 | //标题前插入自定义内容 1015 | var title = prompt("(默认)输入标题表达式,或标题第一个词(.*关键词.*)。", 1016 | "第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]"); 1017 | if (title != "") { 1018 | var title1 = prompt("输入需要的自定义卷名(逐鹿中原卷)", "在此输入自定义的卷名"); 1019 | if (title1 != "") { 1020 | document.selection.Replace("^(.*)(" + title + ")", "" + title1 + 1021 | " \\1\\2", nFlags); 1022 | document.selection.Replace("[  ]+$", "\\1\\2", nFlags); 1023 | } else { 1024 | break; 1025 | } 1026 | } else { 1027 | break; 1028 | } 1029 | break; 1030 | case 10502: 1031 | //第一二三章 → 第123章 1032 | alert("本功能只针对“第xx(集|册|部|卷|章|回|节)”这种格式的标题。"); 1033 | var num = 1; 1034 | var found = 5; 1035 | while (found) { 1036 | num++; 1037 | found = document.selection.Replace( 1038 | "(\\n\\n.*第)百([^ ]{1,3})(集|册|部|卷|章|回|节)", "\\11\\2\\3", 1039 | eeFindNext | 1040 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1041 | } 1042 | var num = 1; 1043 | var found = 5; 1044 | while (found) { 1045 | num++; 1046 | found = document.selection.Replace( 1047 | "(\\n\\n.*第[1-9一二三四五六七八九两])百([^ ]{1,3})(集|册|部|卷|章|回|节)", 1048 | "\\1\\2\\3", 1049 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1050 | eeFindReplaceRegExp); 1051 | } 1052 | var num = 1; 1053 | var found = 5; 1054 | while (found) { 1055 | num++; 1056 | found = document.selection.Replace( 1057 | "(\\n\\n.*第[1-9一二三四五六七八九两])百(集|册|部|卷|章|回|节)", "\\100\\2", 1058 | eeFindNext | 1059 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1060 | } 1061 | var num = 1; 1062 | var found = 5; 1063 | while (found) { 1064 | num++; 1065 | found = document.selection.Replace( 1066 | "(\\n\\n.*第[1-9一二三四五六七八九十两百]{1,3})十([^ ])(集|册|部|卷|章|回|节)", 1067 | "\\1\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1068 | eeReplaceAll | eeFindReplaceRegExp); 1069 | } 1070 | var num = 1; 1071 | var found = 5; 1072 | while (found) { 1073 | num++; 1074 | found = document.selection.Replace( 1075 | "(\\n\\n.*第)十([^ ])(集|册|部|卷|章|回|节)", "\\11\\2\\3", 1076 | eeFindNext | 1077 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1078 | } 1079 | var num = 1; 1080 | var found = 5; 1081 | while (found) { 1082 | num++; 1083 | found = document.selection.Replace( 1084 | "(\\n\\n.*第[1-9一二三四五六七八九十两百]{1,3})十(集|册|部|卷|章|回|节)", 1085 | "\\10\\2", 1086 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1087 | eeFindReplaceRegExp); 1088 | } 1089 | var num = 1; 1090 | var found = 5; 1091 | while (found) { 1092 | num++; 1093 | found = document.selection.Replace("(\\n\\n.*第)十(集|册|部|卷|章|回|节)", 1094 | "\\110\\2", eeFindNext | 1095 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1096 | } 1097 | var num = 1; 1098 | var found = 5; 1099 | while (found) { 1100 | num++; 1101 | found = document.selection.Replace("(\\n\\n.*第)两百(集|册|部|卷|章|回|节)", 1102 | "\\1200\\2", eeFindNext | 1103 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1104 | } 1105 | var num = 1; 1106 | var found = 5; 1107 | while (found) { 1108 | num++; 1109 | found = document.selection.Replace( 1110 | "(\\n\\n.*第[1-9一二三四五六七八九十两百]{1,2})零([^ ]{0,2})(集|册|部|卷|章|回|节)", 1111 | "\\10\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1112 | eeReplaceAll | eeFindReplaceRegExp); 1113 | } 1114 | var found1 = 5; 1115 | while (found1) { 1116 | num++; 1117 | found1 = document.selection.Replace( 1118 | "(\\n\\n.*第[1-9一二三四五六七八九十两百]{1,2})〇([^ ]{0,2})(集|册|部|卷|章|回|节)", 1119 | "\\10\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1120 | eeReplaceAll | eeFindReplaceRegExp); 1121 | } 1122 | var found2 = 5; 1123 | while (found2) { 1124 | num++; 1125 | found2 = document.selection.Replace( 1126 | "(\\n\\n.*第[0-9一二三四五六七八九十两百零〇]{0,4})一([^ ]{0,4})(集|册|部|卷|章|回|节)", 1127 | "\\11\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1128 | eeReplaceAll | eeFindReplaceRegExp); 1129 | } 1130 | var found3 = 5; 1131 | while (found3) { 1132 | num++; 1133 | found3 = document.selection.Replace( 1134 | "(\\n\\n.*第[0-9一二三四五六七八九十两百零〇]{0,4})二([^ ]{0,4})(集|册|部|卷|章|回|节)", 1135 | "\\12\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1136 | eeReplaceAll | eeFindReplaceRegExp); 1137 | } 1138 | var found4 = 5; 1139 | while (found4) { 1140 | num++; 1141 | found4 = document.selection.Replace( 1142 | "(\\n\\n.*第[0-9一二三四五六七八九十两百零〇]{0,4})三([^ ]{0,4})(集|册|部|卷|章|回|节)", 1143 | "\\13\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1144 | eeReplaceAll | eeFindReplaceRegExp); 1145 | } 1146 | var found5 = 5; 1147 | while (found5) { 1148 | num++; 1149 | found5 = document.selection.Replace( 1150 | "(\\n\\n.*第[0-9一二三四五六七八九十两百零〇]{0,4})四([^ ]{0,4})(集|册|部|卷|章|回|节)", 1151 | "\\14\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1152 | eeReplaceAll | eeFindReplaceRegExp); 1153 | } 1154 | var found6 = 5; 1155 | while (found6) { 1156 | num++; 1157 | found6 = document.selection.Replace( 1158 | "(\\n\\n.*第[0-9一二三四五六七八九十两百零〇]{0,4})五([^ ]{0,4})(集|册|部|卷|章|回|节)", 1159 | "\\15\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1160 | eeReplaceAll | eeFindReplaceRegExp); 1161 | } 1162 | var found7 = 5; 1163 | while (found7) { 1164 | num++; 1165 | found7 = document.selection.Replace( 1166 | "(\\n\\n.*第[0-9一二三四五六七八九十两百零〇]{0,4})六([^ ]{0,4})(集|册|部|卷|章|回|节)", 1167 | "\\16\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1168 | eeReplaceAll | eeFindReplaceRegExp); 1169 | } 1170 | var found8 = 5; 1171 | while (found8) { 1172 | num++; 1173 | found8 = document.selection.Replace( 1174 | "(\\n\\n.*第[0-9一二三四五六七八九十两百零〇]{0,4})七([^ ]{0,4})(集|册|部|卷|章|回|节)", 1175 | "\\17\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1176 | eeReplaceAll | eeFindReplaceRegExp); 1177 | } 1178 | var found9 = 5; 1179 | while (found9) { 1180 | num++; 1181 | found9 = document.selection.Replace( 1182 | "(\\n\\n.*第[0-9一二三四五六七八九十两百零〇]{0,4})八([^ ]{0,4})(集|册|部|卷|章|回|节)", 1183 | "\\18\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1184 | eeReplaceAll | eeFindReplaceRegExp); 1185 | } 1186 | var found10 = 5; 1187 | while (found10) { 1188 | num++; 1189 | found10 = document.selection.Replace( 1190 | "(\\n\\n.*第[0-9一二三四五六七八九十两百零〇]{0,4})九([^ ]{0,4})(集|册|部|卷|章|回|节)", 1191 | "\\19\\2\\3", eeFindNext | eeFindReplaceEscSeq | 1192 | eeReplaceAll | eeFindReplaceRegExp); 1193 | } 1194 | //document.selection.Replace("[ ]+"," ",nFlags); 1195 | break; 1196 | case 10501: 1197 | //第壹贰叁章 → 第一二三章 1198 | alert("本功能只针对“第xx(集|册|部|卷|章|回|节)”这种格式的标题。"); 1199 | var num = 1; 1200 | var found = 5; 1201 | while (found) { 1202 | num++; 1203 | found = document.selection.Replace( 1204 | "(第[^ ]{0,1})佰([^ ]{0,3})(集|册|部|卷|章|回|节)", "\\1百\\2\\3", 1205 | eeFindNext | 1206 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1207 | } 1208 | //壹百 1209 | var num = 1; 1210 | var found = 5; 1211 | while (found) { 1212 | num++; 1213 | found = document.selection.Replace( 1214 | "(第[^ ]{0,3})拾([^ ]{0,1})(集|册|部|卷|章|回|节)", "\\1十\\2\\3", 1215 | eeFindNext | 1216 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1217 | } 1218 | //十 1219 | var num = 1; 1220 | var found1 = 5; 1221 | while (found1) { 1222 | num++; 1223 | found1 = document.selection.Replace("(第)俩(集|册|部|卷|章|回|节)", 1224 | "\\1两\\2", eeFindNext | eeFindReplaceEscSeq | 1225 | eeReplaceAll | eeFindReplaceRegExp); 1226 | } 1227 | var num = 1; 1228 | var found1 = 5; 1229 | while (found1) { 1230 | num++; 1231 | found1 = document.selection.Replace( 1232 | "(第[^ ]{0,2})零([^ ]{0,3})(集|册|部|卷|章|回|节)", "\\1\\2\\3", 1233 | eeFindNext | 1234 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1235 | } 1236 | var found2 = 5; 1237 | while (found2) { 1238 | num++; 1239 | found2 = document.selection.Replace( 1240 | "(第[^ ]{0,4})壹([^ ]{0,4})(集|册|部|卷|章|回|节)", "\\1一\\2\\3", 1241 | eeFindNext | 1242 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1243 | } 1244 | var found3 = 5; 1245 | while (found3) { 1246 | num++; 1247 | found3 = document.selection.Replace( 1248 | "(第[^ ]{0,4})贰([^ ]{0,4})(集|册|部|卷|章|回|节)", "\\1二\\2\\3", 1249 | eeFindNext | 1250 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1251 | } 1252 | var found4 = 5; 1253 | while (found4) { 1254 | num++; 1255 | found4 = document.selection.Replace( 1256 | "(第[^ ]{0,4})叁([^ ]{0,4})(集|册|部|卷|章|回|节)", "\\1三\\2\\3", 1257 | eeFindNext | 1258 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1259 | } 1260 | var found5 = 5; 1261 | while (found5) { 1262 | num++; 1263 | found5 = document.selection.Replace( 1264 | "(第[^ ]{0,4})肆([^ ]{0,4})(集|册|部|卷|章|回|节)", "\\1四\\2\\3", 1265 | eeFindNext | 1266 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1267 | } 1268 | var found6 = 5; 1269 | while (found6) { 1270 | num++; 1271 | found6 = document.selection.Replace( 1272 | "(第[^ ]{0,4})伍([^ ]{0,4})(集|册|部|卷|章|回|节)", "\\1五\\2\\3", 1273 | eeFindNext | 1274 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1275 | } 1276 | var found7 = 5; 1277 | while (found7) { 1278 | num++; 1279 | found7 = document.selection.Replace( 1280 | "(第[^ ]{0,4})陆([^ ]{0,4})(集|册|部|卷|章|回|节)", "\\1六\\2\\3", 1281 | eeFindNext | 1282 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1283 | } 1284 | var found8 = 5; 1285 | while (found8) { 1286 | num++; 1287 | found8 = document.selection.Replace( 1288 | "(第[^ ]{0,4})柒([^ ]{0,4})(集|册|部|卷|章|回|节)", "\\1七\\2\\3", 1289 | eeFindNext | 1290 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1291 | } 1292 | var found9 = 5; 1293 | while (found9) { 1294 | num++; 1295 | found9 = document.selection.Replace( 1296 | "(第[^ ]{0,4})捌([^ ]{0,4})(集|册|部|卷|章|回|节)", "\\1八\\2\\3", 1297 | eeFindNext | 1298 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1299 | } 1300 | var found10 = 5; 1301 | while (found10) { 1302 | num++; 1303 | found10 = document.selection.Replace( 1304 | "(第[^ ]{0,4})玖([^ ]{0,4})(集|册|部|卷|章|回|节)", "\\1九\\2\\3", 1305 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1306 | eeFindReplaceRegExp); 1307 | } 1308 | document.selection.Replace("[ ]+", " ", nFlags); 1309 | break; 1310 | case 1008: 1311 | //全角123→半角123 1312 | var found = 5; 1313 | while (found) { 1314 | num++; 1315 | found = document.selection.Replace("1", "1", eeFindNext | 1316 | eeReplaceAll); 1317 | } 1318 | var found = 5; 1319 | while (found) { 1320 | num++; 1321 | found = document.selection.Replace("2", "2", eeFindNext | 1322 | eeReplaceAll); 1323 | } 1324 | var found = 5; 1325 | while (found) { 1326 | num++; 1327 | found = document.selection.Replace("3", "3", eeFindNext | 1328 | eeReplaceAll); 1329 | } 1330 | var found = 5; 1331 | while (found) { 1332 | num++; 1333 | found = document.selection.Replace("4", "4", eeFindNext | 1334 | eeReplaceAll); 1335 | } 1336 | var found = 5; 1337 | while (found) { 1338 | num++; 1339 | found = document.selection.Replace("5", "5", eeFindNext | 1340 | eeReplaceAll); 1341 | } 1342 | var found = 5; 1343 | while (found) { 1344 | num++; 1345 | found = document.selection.Replace("6", "6", eeFindNext | 1346 | eeReplaceAll); 1347 | } 1348 | var found = 5; 1349 | while (found) { 1350 | num++; 1351 | found = document.selection.Replace("7", "7", eeFindNext | 1352 | eeReplaceAll); 1353 | } 1354 | var found = 5; 1355 | while (found) { 1356 | num++; 1357 | found = document.selection.Replace("8", "8", eeFindNext | 1358 | eeReplaceAll); 1359 | } 1360 | var found = 5; 1361 | while (found) { 1362 | num++; 1363 | found = document.selection.Replace("9", "9", eeFindNext | 1364 | eeReplaceAll); 1365 | } 1366 | var found = 5; 1367 | while (found) { 1368 | num++; 1369 | found = document.selection.Replace("0", "0", eeFindNext | 1370 | eeReplaceAll); 1371 | } 1372 | break; 1373 | case 1009: 1374 | //一二三 → 123 1375 | var num = 1; 1376 | var found = 5; 1377 | while (found) { 1378 | num++; 1379 | found = document.selection.Replace( 1380 | "([^一二三四五六七八九两]{0,5})百([一二三四五六七八九十零〇]{1,5})", "\\11\\2", 1381 | eeFindNext | 1382 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1383 | } 1384 | //百一十 1385 | var num = 1; 1386 | var found = 5; 1387 | while (found) { 1388 | num++; 1389 | found = document.selection.Replace( 1390 | "([一二三四五六七八九千两]{1,5})百([一二三四五六七八九十零〇]{1,5})", "\\1\\2", 1391 | eeFindNext | 1392 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1393 | } 1394 | //一百一十 1395 | var num = 1; 1396 | var found = 5; 1397 | while (found) { 1398 | num++; 1399 | found = document.selection.Replace( 1400 | "([一二三四五六七八九两]{1,5})百([^一二三四五六七八九十零〇]{0,5})", "\\100\\2", 1401 | eeFindNext | 1402 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1403 | } 1404 | //一百 1405 | var num = 1; 1406 | var found = 5; 1407 | while (found) { 1408 | num++; 1409 | found = document.selection.Replace( 1410 | "([一二三四五六七八九]{1,5})十([一二三四五六七八九〇]{1,5})", "\\1\\2", 1411 | eeFindNext | 1412 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1413 | } 1414 | //三十三 1415 | var num = 1; 1416 | var found = 5; 1417 | while (found) { 1418 | num++; 1419 | found = document.selection.Replace( 1420 | "([^一二三四五六七八九]{0,5})十([一二三四五六七八九〇]{1,5})", "\\11\\2", 1421 | eeFindNext | 1422 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1423 | } 1424 | //十三 1425 | var num = 1; 1426 | var found = 5; 1427 | while (found) { 1428 | num++; 1429 | found = document.selection.Replace( 1430 | "([一二三四五六七八九]{1,5})十([^一二三四五六七八九〇]{0,5})", "\\10\\2", 1431 | eeFindNext | 1432 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1433 | } 1434 | //三十 1435 | var num = 1; 1436 | var found = 5; 1437 | while (found) { 1438 | num++; 1439 | found = document.selection.Replace( 1440 | "([^一二三四五六七八九]{0,5})十([^一二三四五六七八九〇]{0,5})", "\\110\\2", 1441 | eeFindNext | 1442 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1443 | } 1444 | //十 1445 | var num = 1; 1446 | var found = 5; 1447 | while (found) { 1448 | num++; 1449 | found = document.selection.Replace("([^ ]{0,5})两([^ ]{0,5})", 1450 | "\\12\\2", eeFindNext | eeFindReplaceEscSeq | 1451 | eeReplaceAll | eeFindReplaceRegExp); 1452 | } 1453 | //两 1454 | var num = 1; 1455 | var found = 5; 1456 | while (found) { 1457 | num++; 1458 | found = document.selection.Replace("([^ ]{0,5})零([^ ]{0,5})", 1459 | "\\10\\2", eeFindNext | eeFindReplaceEscSeq | 1460 | eeReplaceAll | eeFindReplaceRegExp); 1461 | } 1462 | var num = 1; 1463 | var found1 = 5; 1464 | while (found1) { 1465 | num++; 1466 | found1 = document.selection.Replace("([^ ]{0,5})〇([^ ]{0,5})", 1467 | "\\10\\2", eeFindNext | eeFindReplaceEscSeq | 1468 | eeReplaceAll | eeFindReplaceRegExp); 1469 | } 1470 | var found2 = 5; 1471 | while (found2) { 1472 | num++; 1473 | found2 = document.selection.Replace("([^ ]{0,5})一([^ ]{0,5})", 1474 | "\\11\\2", eeFindNext | eeFindReplaceEscSeq | 1475 | eeReplaceAll | eeFindReplaceRegExp); 1476 | } 1477 | var found3 = 5; 1478 | while (found3) { 1479 | num++; 1480 | found3 = document.selection.Replace("([^ ]{0,5})二([^ ]{0,5})", 1481 | "\\12\\2", eeFindNext | eeFindReplaceEscSeq | 1482 | eeReplaceAll | eeFindReplaceRegExp); 1483 | } 1484 | var found4 = 5; 1485 | while (found4) { 1486 | num++; 1487 | found4 = document.selection.Replace("([^ ]{0,5})三([^ ]{0,5})", 1488 | "\\13\\2", eeFindNext | eeFindReplaceEscSeq | 1489 | eeReplaceAll | eeFindReplaceRegExp); 1490 | } 1491 | var found5 = 5; 1492 | while (found5) { 1493 | num++; 1494 | found5 = document.selection.Replace("([^ ]{0,5})四([^ ]{0,5})", 1495 | "\\14\\2", eeFindNext | eeFindReplaceEscSeq | 1496 | eeReplaceAll | eeFindReplaceRegExp); 1497 | } 1498 | var found6 = 5; 1499 | while (found6) { 1500 | num++; 1501 | found6 = document.selection.Replace("([^ ]{0,5})五([^ ]{0,5})", 1502 | "\\15\\2", eeFindNext | eeFindReplaceEscSeq | 1503 | eeReplaceAll | eeFindReplaceRegExp); 1504 | } 1505 | var found7 = 5; 1506 | while (found7) { 1507 | num++; 1508 | found7 = document.selection.Replace("([^ ]{0,5})六([^ ]{0,5})", 1509 | "\\16\\2", eeFindNext | eeFindReplaceEscSeq | 1510 | eeReplaceAll | eeFindReplaceRegExp); 1511 | } 1512 | var found8 = 5; 1513 | while (found8) { 1514 | num++; 1515 | found8 = document.selection.Replace("([^ ]{0,5})七([^ ]{0,5})", 1516 | "\\17\\2", eeFindNext | eeFindReplaceEscSeq | 1517 | eeReplaceAll | eeFindReplaceRegExp); 1518 | } 1519 | var found9 = 5; 1520 | while (found9) { 1521 | num++; 1522 | found9 = document.selection.Replace("([^ ]{0,5})八([^ ]{0,5})", 1523 | "\\18\\2", eeFindNext | eeFindReplaceEscSeq | 1524 | eeReplaceAll | eeFindReplaceRegExp); 1525 | } 1526 | var found10 = 5; 1527 | while (found10) { 1528 | num++; 1529 | found10 = document.selection.Replace("([^ ]{0,5})九([^ ]{0,5})", 1530 | "\\19\\2", eeFindNext | eeFindReplaceEscSeq | 1531 | eeReplaceAll | eeFindReplaceRegExp); 1532 | } 1533 | document.selection.Replace("[ ]+", " ", nFlags); 1534 | break; 1535 | case 10504: 1536 | //第123章 → 第一百二十三章 1537 | alert("本功能只针对“第xx(集|册|部|卷|章|回|节)”这种格式的标题。"); 1538 | document.selection.Replace("(第)(1|1)(.)(集|册|部|卷|章|回|节)", "\\1十\\3\\4", 1539 | eeFindNext | eeFindReplaceEscSeq | 1540 | eeReplaceAll | eeFindReplaceRegExp); 1541 | document.selection.Replace("(第)(.{0,2})(1|1)(集|册|部|卷|章|回|节)", 1542 | "\\1\\2一\\4", eeFindNext | eeFindReplaceEscSeq | 1543 | eeReplaceAll | eeFindReplaceRegExp); 1544 | document.selection.Replace("(第)(.{0,2})(2|2)(集|册|部|卷|章|回|节)", 1545 | "\\1\\2二\\4", eeFindNext | eeFindReplaceEscSeq | 1546 | eeReplaceAll | eeFindReplaceRegExp); 1547 | document.selection.Replace("(第)(.{0,2})(3|3)(集|册|部|卷|章|回|节)", 1548 | "\\1\\2三\\4", eeFindNext | eeFindReplaceEscSeq | 1549 | eeReplaceAll | eeFindReplaceRegExp); 1550 | document.selection.Replace("(第)(.{0,2})(4|4)(集|册|部|卷|章|回|节)", 1551 | "\\1\\2四\\4", eeFindNext | eeFindReplaceEscSeq | 1552 | eeReplaceAll | eeFindReplaceRegExp); 1553 | document.selection.Replace("(第)(.{0,2})(5|5)(集|册|部|卷|章|回|节)", 1554 | "\\1\\2五\\4", eeFindNext | eeFindReplaceEscSeq | 1555 | eeReplaceAll | eeFindReplaceRegExp); 1556 | document.selection.Replace("(第)(.{0,2})(6|6)(集|册|部|卷|章|回|节)", 1557 | "\\1\\2六\\4", eeFindNext | eeFindReplaceEscSeq | 1558 | eeReplaceAll | eeFindReplaceRegExp); 1559 | document.selection.Replace("(第)(.{0,2})(7|7)(集|册|部|卷|章|回|节)", 1560 | "\\1\\2七\\4", eeFindNext | eeFindReplaceEscSeq | 1561 | eeReplaceAll | eeFindReplaceRegExp); 1562 | document.selection.Replace("(第)(.{0,2})(8|8)(集|册|部|卷|章|回|节)", 1563 | "\\1\\2八\\4", eeFindNext | eeFindReplaceEscSeq | 1564 | eeReplaceAll | eeFindReplaceRegExp); 1565 | document.selection.Replace("(第)(.{0,2})(9|9)(集|册|部|卷|章|回|节)", 1566 | "\\1\\2九\\4", eeFindNext | eeFindReplaceEscSeq | 1567 | eeReplaceAll | eeFindReplaceRegExp); 1568 | document.selection.Replace("(第)(.{0,1})(1|1)(.{1})(集|册|部|卷|章|回|节)", 1569 | "\\1\\2一十\\4\\5", eeFindNext | 1570 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1571 | document.selection.Replace("(第)(.{0,1})(2|2)(.{1})(集|册|部|卷|章|回|节)", 1572 | "\\1\\2二十\\4\\5", eeFindNext | 1573 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1574 | document.selection.Replace("(第)(.{0,1})(3|3)(.{1})(集|册|部|卷|章|回|节)", 1575 | "\\1\\2三十\\4\\5", eeFindNext | 1576 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1577 | document.selection.Replace("(第)(.{0,1})(4|4)(.{1})(集|册|部|卷|章|回|节)", 1578 | "\\1\\2四十\\4\\5", eeFindNext | 1579 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1580 | document.selection.Replace("(第)(.{0,1})(5|5)(.{1})(集|册|部|卷|章|回|节)", 1581 | "\\1\\2五十\\4\\5", eeFindNext | 1582 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1583 | document.selection.Replace("(第)(.{0,1})(6|6)(.{1})(集|册|部|卷|章|回|节)", 1584 | "\\1\\2六十\\4\\5", eeFindNext | 1585 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1586 | document.selection.Replace("(第)(.{0,1})(7|7)(.{1})(集|册|部|卷|章|回|节)", 1587 | "\\1\\2七十\\4\\5", eeFindNext | 1588 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1589 | document.selection.Replace("(第)(.{0,1})(8|8)(.{1})(集|册|部|卷|章|回|节)", 1590 | "\\1\\2八十\\4\\5", eeFindNext | 1591 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1592 | document.selection.Replace("(第)(.{0,1})(9|9)(.{1})(集|册|部|卷|章|回|节)", 1593 | "\\1\\2九十\\4\\5", eeFindNext | 1594 | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceRegExp); 1595 | document.selection.Replace("(第)(1|1)(.{2,3})(集|册|部|卷|章|回|节)", 1596 | "\\1一百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1597 | eeReplaceAll | eeFindReplaceRegExp); 1598 | document.selection.Replace("(第)(2|2)(.{2,3})(集|册|部|卷|章|回|节)", 1599 | "\\1二百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1600 | eeReplaceAll | eeFindReplaceRegExp); 1601 | document.selection.Replace("(第)(3|3)(.{2,3})(集|册|部|卷|章|回|节)", 1602 | "\\1三百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1603 | eeReplaceAll | eeFindReplaceRegExp); 1604 | document.selection.Replace("(第)(4|4)(.{2,3})(集|册|部|卷|章|回|节)", 1605 | "\\1四百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1606 | eeReplaceAll | eeFindReplaceRegExp); 1607 | document.selection.Replace("(第)(5|5)(.{2,3})(集|册|部|卷|章|回|节)", 1608 | "\\1五百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1609 | eeReplaceAll | eeFindReplaceRegExp); 1610 | document.selection.Replace("(第)(6|6)(.{2,3})(集|册|部|卷|章|回|节)", 1611 | "\\1六百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1612 | eeReplaceAll | eeFindReplaceRegExp); 1613 | document.selection.Replace("(第)(7|7)(.{2,3})(集|册|部|卷|章|回|节)", 1614 | "\\1七百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1615 | eeReplaceAll | eeFindReplaceRegExp); 1616 | document.selection.Replace("(第)(8|8)(.{2,3})(集|册|部|卷|章|回|节)", 1617 | "\\1八百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1618 | eeReplaceAll | eeFindReplaceRegExp); 1619 | document.selection.Replace("(第)(9|9)(.{2,3})(集|册|部|卷|章|回|节)", 1620 | "\\1九百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1621 | eeReplaceAll | eeFindReplaceRegExp); 1622 | document.selection.Replace("(第.)(00|00|OO)(集|册|部|卷|章|回|节)", "\\1\\3", 1623 | eeFindNext | eeFindReplaceEscSeq | 1624 | eeReplaceAll | eeFindReplaceRegExp); 1625 | document.selection.Replace("(第..)(0|0|O)(集|册|部|卷|章|回|节)", "\\1\\3", 1626 | eeFindNext | eeFindReplaceEscSeq | 1627 | eeReplaceAll | eeFindReplaceRegExp); 1628 | document.selection.Replace("(第.)(0|0|O)(.)(集|册|部|卷|章|回|节)", 1629 | "\\1零\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1630 | eeReplaceAll | eeFindReplaceRegExp); 1631 | document.selection.Replace("十O", "十", nFlags); 1632 | //document.selection.Replace("0","〇",nFlags); 1633 | break; 1634 | case 10503: 1635 | //第一二三章 → 第一百二十三章 1636 | alert("本功能只针对“第xx(集|册|部|卷|章|回|节)”这种格式的标题。"); 1637 | document.selection.Replace("(第)(一)(.)(集|册|部|卷|章|回|节)", "\\1十\\3\\4", 1638 | eeFindNext | eeFindReplaceEscSeq | 1639 | eeReplaceAll | eeFindReplaceRegExp); 1640 | document.selection.Replace( 1641 | "(第)([一二三四五六七八九十百零〇]{0,1})(一)(.{1})(集|册|部|卷|章|回|节)", 1642 | "\\1\\2一十\\4\\5", 1643 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1644 | eeFindReplaceRegExp); 1645 | document.selection.Replace( 1646 | "(第)([一二三四五六七八九十百零〇]{0,1})(二)(.{1})(集|册|部|卷|章|回|节)", 1647 | "\\1\\2二十\\4\\5", 1648 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1649 | eeFindReplaceRegExp); 1650 | document.selection.Replace( 1651 | "(第)([一二三四五六七八九十百零〇]{0,1})(三)(.{1})(集|册|部|卷|章|回|节)", 1652 | "\\1\\2三十\\4\\5", 1653 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1654 | eeFindReplaceRegExp); 1655 | document.selection.Replace( 1656 | "(第)([一二三四五六七八九十百零〇]{0,1})(四)(.{1})(集|册|部|卷|章|回|节)", 1657 | "\\1\\2四十\\4\\5", 1658 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1659 | eeFindReplaceRegExp); 1660 | document.selection.Replace( 1661 | "(第)([一二三四五六七八九十百零〇]{0,1})(五)(.{1})(集|册|部|卷|章|回|节)", 1662 | "\\1\\2五十\\4\\5", 1663 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1664 | eeFindReplaceRegExp); 1665 | document.selection.Replace( 1666 | "(第)([一二三四五六七八九十百零〇]{0,1})(六)(.{1})(集|册|部|卷|章|回|节)", 1667 | "\\1\\2六十\\4\\5", 1668 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1669 | eeFindReplaceRegExp); 1670 | document.selection.Replace( 1671 | "(第)([一二三四五六七八九十百零〇]{0,1})(七)(.{1})(集|册|部|卷|章|回|节)", 1672 | "\\1\\2七十\\4\\5", 1673 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1674 | eeFindReplaceRegExp); 1675 | document.selection.Replace( 1676 | "(第)([一二三四五六七八九十百零〇]{0,1})(八)(.{1})(集|册|部|卷|章|回|节)", 1677 | "\\1\\2八十\\4\\5", 1678 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1679 | eeFindReplaceRegExp); 1680 | document.selection.Replace( 1681 | "(第)([一二三四五六七八九十百零〇]{0,1})(九)(.{1})(集|册|部|卷|章|回|节)", 1682 | "\\1\\2九十\\4\\5", 1683 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1684 | eeFindReplaceRegExp); 1685 | document.selection.Replace("(第)(一)(.{2,3})(集|册|部|卷|章|回|节)", 1686 | "\\1一百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1687 | eeReplaceAll | eeFindReplaceRegExp); 1688 | document.selection.Replace("(第)(二)(.{2,3})(集|册|部|卷|章|回|节)", 1689 | "\\1二百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1690 | eeReplaceAll | eeFindReplaceRegExp); 1691 | document.selection.Replace("(第)(三)(.{2,3})(集|册|部|卷|章|回|节)", 1692 | "\\1三百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1693 | eeReplaceAll | eeFindReplaceRegExp); 1694 | document.selection.Replace("(第)(四)(.{2,3})(集|册|部|卷|章|回|节)", 1695 | "\\1四百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1696 | eeReplaceAll | eeFindReplaceRegExp); 1697 | document.selection.Replace("(第)(五)(.{2,3})(集|册|部|卷|章|回|节)", 1698 | "\\1五百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1699 | eeReplaceAll | eeFindReplaceRegExp); 1700 | document.selection.Replace("(第)(六)(.{2,3})(集|册|部|卷|章|回|节)", 1701 | "\\1六百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1702 | eeReplaceAll | eeFindReplaceRegExp); 1703 | document.selection.Replace("(第)(七)(.{2,3})(集|册|部|卷|章|回|节)", 1704 | "\\1七百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1705 | eeReplaceAll | eeFindReplaceRegExp); 1706 | document.selection.Replace("(第)(八)(.{2,3})(集|册|部|卷|章|回|节)", 1707 | "\\1八百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1708 | eeReplaceAll | eeFindReplaceRegExp); 1709 | document.selection.Replace("(第)(九)(.{2,3})(集|册|部|卷|章|回|节)", 1710 | "\\1九百\\3\\4", eeFindNext | eeFindReplaceEscSeq | 1711 | eeReplaceAll | eeFindReplaceRegExp); 1712 | document.selection.Replace("(第.+)(〇〇)(集|册|部|卷|章|回|节)", "\\1\\3", 1713 | eeFindNext | eeFindReplaceEscSeq | 1714 | eeReplaceAll | eeFindReplaceRegExp); 1715 | document.selection.Replace("(第.+)(〇)(集|册|部|卷|章|回|节)", "\\1\\3", 1716 | eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | 1717 | eeFindReplaceRegExp); 1718 | document.selection.Replace("(第.+)(〇)(.+)(集|册|部|卷|章|回|节)", "\\1零\\3\\4", 1719 | eeFindNext | eeFindReplaceEscSeq | 1720 | eeReplaceAll | eeFindReplaceRegExp); 1721 | break; 1722 | case 10400: 1723 | //VIP章节标题预处理使用 1724 | alert( 1725 | "使用指南:必须对不规范vip章节名进行预处理,再进行自动排版。最好对规范和不规范的混合标题分开进行处理。\nVIP章节标题直接复制起点目录中的文字,一行四个标题的格式。\n类似于:\n“第九章第十章十一章十二章”\n“九 十 十一 十二”\n预处理得到结果:\n“第九章 第十章 第十一章 第十二章”\n\n复杂标题预先分段:\n类似于“第九章 第十章 第十一章 第十二章”的标题,由一行四个标题处理为一行一个。\n\n“字段”是指类似于“卷六 织网 粮争帛斗 一一 ”的标题中被空格隔开的一段,即第二字段(织网)第三字段(粮争帛斗)。\n\n处理流程:\n1.先要对标题进行分段,把一行四个的标题,分成一行一个。\n2.给过于紧密的标题加上空格区分不同字段内容。\n3.给残缺量词的标题加上“第章”。\n4.把残缺的括号补齐。\n\n因为很多书的图片都是无法确定多少的,比如说有的章节只有1张,有的2张,有的3张,这是没办法找到规律进行处理的。不如就按照这些章节图片最多数量分,然后手工把多余的链接一个一个删,这总比一个一个加进去要简单。不要的部分就是
......
之间的。" 1726 | ); 1727 | break; 1728 | 1729 | case 10401: 1730 | //VIP章节不规范标题预处理(加章节量词) 1731 | document.selection.Replace("《", " 《", nFlags); 1732 | document.selection.Replace("》", "》 ", nFlags); 1733 | document.selection.Replace("(第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节])", 1734 | " \\0 ", nFlags); 1735 | document.selection.Replace(" ", " ", nFlags); 1736 | //改成半角空格 1737 | document.selection.Replace("(", " (", eeFindNext | eeReplaceAll); 1738 | document.selection.Replace(")", ") ", eeFindNext | eeReplaceAll); 1739 | //改成全角括号 1740 | document.selection.Replace(" +", " ", nFlags); 1741 | document.selection.Replace(" *$", "", nFlags); 1742 | document.selection.Replace("^\\n", "", nFlags); 1743 | var title1 = prompt("输入标题的第一个字词或空格分段(逐鹿卷 第2章),已分段则取消。", 1744 | "“逐鹿卷”或“第[0-9一二三四五六七八九十两百零〇]{1,5}卷”,(卷部集章节回),只有一个字段可用空格"); 1745 | if (title1 != "") { 1746 | document.selection.Replace("\\n", "", nFlags); 1747 | document.selection.Replace("(" + title1 + ")", "\\n\\0", nFlags); 1748 | document.selection.Replace("^[ ]*\\n", "", nFlags); 1749 | } 1750 | bAnswer = confirm( 1751 | "标题中各字段已经预先分配好空格按“确定”;未分配好空格则按“取消”,对标题中的数字自动加“第章”量词,但有可能出现错误把非序数的标题名加“第章”,需要检查。" 1752 | ); 1753 | if (bAnswer == true) { 1754 | var title = prompt("(默认)输入一个量词“章回节”,若已有量词而无“第”按取消。", "章") // 1755 | if (title != "") { 1756 | var insert = prompt("要给以空格分开的标题的第几个词加“第”量词(卷六 织网 一一)。", 1757 | "在此输入1-5之间的数字"); 1758 | if (insert == 1) { 1759 | document.selection.Replace("^([^ ]*)", "第\\1" + title + "", 1760 | nFlags); 1761 | //加“第章”,加空格 1762 | } 1763 | if (insert == 2) { 1764 | document.selection.Replace("^([^ ]*) ([^ ]*)", "\\1 第\\2" + 1765 | title + "", nFlags); 1766 | } 1767 | if (insert == 3) { 1768 | document.selection.Replace("^([^ ]*) ([^ ]*) ([^ ]*)", 1769 | "\\1 \\2 第\\3" + title + "", nFlags); 1770 | } 1771 | if (insert == 4) { 1772 | document.selection.Replace( 1773 | "^([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*)", 1774 | "\\1 \\2 \\3 第\\4" + title + "", 1775 | nFlags); 1776 | } 1777 | if (insert == 5) { 1778 | document.selection.Replace( 1779 | "^([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*)", 1780 | "\\1 \\2 \\3 \\4 第\\5" + 1781 | title + "", 1782 | nFlags); 1783 | } 1784 | } else { 1785 | document.selection.Replace("(^.+) ([^ ]+[章回节])", "\\1 第\\2", 1786 | nFlags); 1787 | //加“第”,前面需要有空格 1788 | } 1789 | } else { 1790 | document.selection.Replace("[0-9一二三四五六七八九十百两]+", " 第\\0章 ", nFlags); 1791 | } 1792 | document.selection.Replace("第第", "第", nFlags); 1793 | //去“第” 1794 | document.selection.Replace("章章", "章", nFlags); 1795 | //去“章” 1796 | document.selection.Replace("节节", "节", nFlags); 1797 | document.selection.Replace("节章", "节", nFlags); 1798 | document.selection.Replace("章节", "章", nFlags); 1799 | document.selection.Replace("章回", "章", nFlags); 1800 | document.selection.Replace("回章", "章", nFlags); 1801 | document.selection.Replace("卷章", "卷", nFlags); 1802 | document.selection.Replace("部章", "部", nFlags); 1803 | document.selection.Replace("第卷", "卷", nFlags); 1804 | document.selection.Replace("第章", "第", nFlags); 1805 | document.selection.Replace("第 第", "第", nFlags); 1806 | document.selection.Replace("章 ([卷部集章节回])", "\\1", nFlags); 1807 | document.selection.Replace("[ ]+", " ", nFlags); 1808 | document.selection.Replace("(^[  ]*)|([  ]*$)", "", nFlags); 1809 | break; 1810 | case 10402: 1811 | //VIP章节不规范标题预处理(标题内加空格) 1812 | document.selection.Replace("《", " 《", nFlags); 1813 | document.selection.Replace("》", "》 ", nFlags); 1814 | document.selection.Replace("(第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节])", 1815 | " \\0 ", nFlags); 1816 | document.selection.Replace(" ", " ", nFlags); 1817 | //改成半角空格 1818 | document.selection.Replace("(", " (", eeFindNext | eeReplaceAll); 1819 | document.selection.Replace(")", ") ", eeFindNext | eeReplaceAll); 1820 | //改成全角括号 1821 | document.selection.Replace(" +", " ", nFlags); 1822 | document.selection.Replace(" *$", "", nFlags); 1823 | document.selection.Replace("^\\n", "", nFlags); 1824 | var title1 = prompt("输入标题的第一个字词或空格分段(逐鹿卷 第2章),已分段则取消。", 1825 | "“逐鹿卷”或“第[0-9一二三四五六七八九十两百零〇]{1,5}卷”,(卷部集章节回),只有一个字段可用空格"); 1826 | if (title1 != "") { 1827 | document.selection.Replace("\\n", "", nFlags); 1828 | document.selection.Replace("(" + title1 + ")", "\\n\\0", nFlags); 1829 | document.selection.Replace("^[ ]*\\n", "", nFlags); 1830 | } 1831 | var title = prompt("1.(默认)输入要加空格的关键词或者标题表达式,无则取消。", 1832 | "第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节]") // 1833 | if (title != "") { 1834 | document.selection.Replace("(" + title + ")", " \\1 ", nFlags); 1835 | //标题前后加空格 1836 | } 1837 | var title1 = prompt("2.输入还要加空格的第二组关键词(卷六织网第三章“粮争”(十一))。", 1838 | "在此输入关键词,织网或粮争,或括号内容(.+)") // 1839 | if (title1 != "") { 1840 | document.selection.Replace("(" + title1 + ")", " \\1 ", nFlags); 1841 | //标题前后加空格 1842 | } 1843 | document.selection.Replace("[ ]+", " ", nFlags); 1844 | document.selection.Replace("(^[  ]*)|([  ]*$)", "", nFlags); 1845 | break; 1846 | case 10403: 1847 | //VIP章节不规范标题预处理(括号配对) 1848 | document.selection.Replace("《", " 《", nFlags); 1849 | document.selection.Replace("》", "》 ", nFlags); 1850 | document.selection.Replace("(第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节])", 1851 | " \\0 ", nFlags); 1852 | document.selection.Replace(" ", " ", nFlags); 1853 | //改成半角空格 1854 | document.selection.Replace("(", " (", eeFindNext | eeReplaceAll); 1855 | document.selection.Replace(")", ") ", eeFindNext | eeReplaceAll); 1856 | //改成全角括号 1857 | document.selection.Replace("[ ]+", " ", nFlags); 1858 | document.selection.Replace("[ ]*$", "", nFlags); 1859 | document.selection.Replace("^\\n", "", nFlags); 1860 | var title1 = prompt("输入标题的第一个字词或空格分段(逐鹿卷 第2章),已分段则取消。", 1861 | "“逐鹿卷”或“第[0-9一二三四五六七八九十两百零〇]{1,5}卷”,(卷部集章节回),只有一个字段可用空格"); 1862 | if (title1 != "") { 1863 | document.selection.Replace("\\n", "", nFlags); 1864 | document.selection.Replace("(" + title1 + ")", "\\n\\0", nFlags); 1865 | document.selection.Replace("^[ ]*\\n", "", nFlags); 1866 | } 1867 | document.selection.Replace("(^.*) ([^ ]+))", "\\1 (\\2) ", nFlags); 1868 | //修补前括号 1869 | document.selection.Replace("(^.*)(([^ ]+)", "\\1 (\\2) ", nFlags); 1870 | //修补后括号 1871 | document.selection.Replace("((", "(", nFlags); 1872 | document.selection.Replace("))", ")", nFlags); 1873 | // 1874 | document.selection.Replace("()", "", nFlags); 1875 | // 1876 | document.selection.Replace("([ ]+)", " ", nFlags); 1877 | //清除多余空格 1878 | document.selection.Replace("(^[  ]*)|([  ]*$)", "", nFlags); 1879 | //删除段首尾空格 1880 | document.selection.Replace("( ", " (", nFlags); 1881 | document.selection.Replace(" )", ") ", nFlags); 1882 | document.selection.Replace("(^[  ]*)|([  ]*$)", "", nFlags); 1883 | break; 1884 | case 10404: 1885 | //VIP章节不规范标题预处理(指定位置添加括号) 1886 | document.selection.Replace("《", " 《", nFlags); 1887 | document.selection.Replace("》", "》 ", nFlags); 1888 | document.selection.Replace(" ", " ", nFlags); 1889 | //改成半角空格 1890 | document.selection.Replace("(", " (", eeFindNext | eeReplaceAll); 1891 | document.selection.Replace(")", ") ", eeFindNext | eeReplaceAll); 1892 | //改成全角括号 1893 | document.selection.Replace("(第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节])", 1894 | " \\0 ", nFlags); 1895 | document.selection.Replace(" +", " ", nFlags); 1896 | document.selection.Replace(" *$", "", nFlags); 1897 | document.selection.Replace("^\\n", "", nFlags); 1898 | var title1 = prompt("输入标题的第一个字词或空格分段(逐鹿卷 第2章),已分段则取消。", 1899 | "“逐鹿卷”或“第[0-9一二三四五六七八九十两百零〇]{1,5}卷”,(卷部集章节回),只有一个字段可用空格"); 1900 | if (title1 != "") { 1901 | document.selection.Replace("\\n", "", nFlags); 1902 | document.selection.Replace("(" + title1 + ")", "\\n\\0", nFlags); 1903 | document.selection.Replace("^[ ]*\\n", "", nFlags); 1904 | } 1905 | var title1 = prompt("要加括号的位置为标题中倒数第几组词(卷六 第三章 十一)。”", "在此输入1-5之间的数字") // 1906 | if (title1 == "1") { 1907 | document.selection.Replace("(^.+) ([^ ]+)", "\\1 (\\2)", nFlags); 1908 | } 1909 | if (title1 == "2") { 1910 | document.selection.Replace("(^.+) ([^ ]+) ([^ ]+)", "\\1 (\\2) \\3", 1911 | nFlags); 1912 | } 1913 | if (title1 == "3") { 1914 | document.selection.Replace("(^.+) ([^ ]+) ([^ ]+) ([^ ]+)", 1915 | "\\1 (\\2) \\3 \\4", nFlags); 1916 | } 1917 | if (title1 == "4") { 1918 | document.selection.Replace("(^.+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)", 1919 | "\\1 (\\2) \\3 \\4 \\5", nFlags); 1920 | } 1921 | if (title1 == "5") { 1922 | document.selection.Replace( 1923 | "(^.+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+)", 1924 | "\\1 (\\2) \\3 \\4 \\5", 1925 | nFlags); 1926 | } 1927 | document.selection.Replace("([ ]+)", " ", nFlags); 1928 | //清除多余空格 1929 | document.selection.Replace("(^[  ]*)|([  ]*$)", "", nFlags); 1930 | //删除段首尾空格 1931 | break; 1932 | case 10405: 1933 | //VIP章节不规范标题预处理(为指定关键词所在字段添加括号) 1934 | document.selection.Replace("《", " 《", nFlags); 1935 | document.selection.Replace("》", "》 ", nFlags); 1936 | document.selection.Replace(" ", " ", nFlags); 1937 | //改成半角空格 1938 | document.selection.Replace("(", " (", eeFindNext | eeReplaceAll); 1939 | document.selection.Replace(")", ") ", eeFindNext | eeReplaceAll); 1940 | //改成全角括号 1941 | document.selection.Replace("(第[0-9一二三四五六七八九十两百千零〇]{1,7}[册集部卷章回节])", 1942 | " \\1 ", nFlags); 1943 | document.selection.Replace(" +", " ", nFlags); 1944 | document.selection.Replace(" *$", "", nFlags); 1945 | document.selection.Replace("^\\n", "", nFlags); 1946 | var title1 = prompt("输入标题的第一个字词或空格分段(逐鹿卷 第2章),已分段则取消。", 1947 | "“逐鹿卷”或“第[0-9一二三四五六七八九十两百零〇]{1,5}卷”,(卷部集章节回),只有一个字段可用空格"); 1948 | if (title1 != "") { 1949 | document.selection.Replace("\\n", "", nFlags); 1950 | document.selection.Replace("(" + title1 + ")", "\\n\\0", nFlags); 1951 | document.selection.Replace("^[ ]*\\n", "", nFlags); 1952 | } 1953 | var title2 = prompt("为序数或关键词所在词组加括号“第三章 十一”。”", 1954 | "[0-9一二三四五六七八九十两百]{1,5}") // 1955 | if (title2 != "") { 1956 | document.selection.Replace("(^.*) ([^ 0-9一二三四五六七八九十两百]*" + title2 + 1957 | "[^ 0-9一二三四五六七八九十两百]*) (.*$)", 1958 | "\\1 (\\2) \\3", nFlags); 1959 | document.selection.Replace("第(", "第", nFlags); 1960 | document.selection.Replace(")章", "章", nFlags); 1961 | } 1962 | document.selection.Replace("([ ]+)", " ", nFlags); 1963 | //清除多余空格 1964 | document.selection.Replace("(^[  ]*)|([  ]*$)", "", nFlags); 1965 | //删除段首尾空格 1966 | break; 1967 | 1968 | case 702: 1969 | // 内容修正 1970 | alert( 1971 | "1.删除自定义关键词(广告句子)使用指南:\n\n必须仔细选用关键词,否则容易导致错误删除其他巧合的地方。\n尽量多选择几个关键词,关键词之间用(.*)分开,如果关键词之间没有空格最好用([^ ]*)区分,这样效果最好。\n比如(推荐.+书号),(推荐.+书号.+作者)。\n\n对于ASCII乱码,复制一到两个多次出现的乱码作为关键词,因为可能有遗漏,应该反复多次运行直到完全清除。\n\n2.删除含无用内容的多个段落,特别适合于html另存为txt的内容中的没用的各种内容,包括抬头段,版权段,评论,等等各种各样的没有用处的东西。相当于排版脚本的手动版。对于不提供全文阅读和下载的网站小说比较适用。\n删除广告乱码以后,最好对全文做一次段落重整,统一段落。" 1972 | ) 1973 | break; 1974 | case 704: 1975 | // 删除自定义关键词(广告句子) 1976 | var insert = prompt("输入此段特有的关键词,或用(.+)分开的多个关键词。", 1977 | "关键词1.+关键词2,可只输入一个关键词"); 1978 | if (insert != "") { 1979 | document.selection.Replace(".*" + insert + ".*[。!”…]*", "", nFlags); 1980 | document.selection.Replace("^[ ]+$", "", nFlags); 1981 | document.selection.Replace("^\\n\\n\\n\\n", "\\n\\n", nFlags); 1982 | document.selection.Replace("^\\n\\n\\n", "\\n\\n", nFlags); 1983 | document.selection.Replace("(.+)\\n\\n(.+)", "\\1\\n\\2", nFlags); 1984 | } 1985 | break; 1986 | case 705: 1987 | //删除自定义关键词(广告段落) 1988 | var insert = prompt("输入此段特有的关键词,或用(.+)分开的多个关键词。", 1989 | "关键词1.+关键词2,可只输入一个关键词"); 1990 | if (insert != "") { 1991 | document.selection.Replace(".*" + insert + ".*", "", nFlags); 1992 | document.selection.Replace("^[ ]+$", "", nFlags); 1993 | document.selection.Replace("^\\n\\n\\n\\n", "\\n\\n", nFlags); 1994 | document.selection.Replace("^\\n\\n\\n", "\\n\\n", nFlags); 1995 | } else { 1996 | break; 1997 | } 1998 | break; 1999 | case 706: 2000 | //删除自定义关键词(多个广告段落) 2001 | var insert = prompt("输入要删除的第一段开头特有的关键词,或用(.+)分开的多个关键词。", 2002 | "关键词1.+关键词2,可只输入一个关键词") 2003 | var insert1 = prompt("输入要删除的最后一段结尾特有的关键词,或用(.+)分开的多个关键词。", 2004 | "关键词3.+关键词4,可只输入一个关键词"); 2005 | if (insert != "") { 2006 | document.selection.Replace(".*" + insert + ".*", "込", nFlags); 2007 | document.selection.Replace(".*" + insert1 + ".*", "肀", nFlags); 2008 | var num = 1; 2009 | var found = document.selection.Replace("込\\n[^肀]*", "込", nFlags); 2010 | while (found) { 2011 | num++; 2012 | found = document.selection.Replace("込\\n[^肀]*", "込", nFlags); 2013 | } 2014 | document.selection.Replace("込", "", nFlags); 2015 | document.selection.Replace("肀", "", nFlags); 2016 | document.selection.Replace("^[ ]+$", "", nFlags); 2017 | document.selection.Replace("^\\n\\n\\n\\n", "\\n\\n", nFlags); 2018 | document.selection.Replace("^\\n\\n\\n", "\\n\\n", nFlags); 2019 | } 2020 | break; 2021 | 2022 | case 1000: 2023 | //文中英文小写 2024 | document.selection.Replace("A", "a", eeFindNext | eeReplaceAll); 2025 | document.selection.Replace("B", "b", eeFindNext | eeReplaceAll); 2026 | document.selection.Replace("C", "c", eeFindNext | eeReplaceAll); 2027 | document.selection.Replace("D", "d", eeFindNext | eeReplaceAll); 2028 | document.selection.Replace("E", "e", eeFindNext | eeReplaceAll); 2029 | document.selection.Replace("F", "f", eeFindNext | eeReplaceAll); 2030 | document.selection.Replace("G", "g", eeFindNext | eeReplaceAll); 2031 | document.selection.Replace("H", "h", eeFindNext | eeReplaceAll); 2032 | document.selection.Replace("I", "i", eeFindNext | eeReplaceAll); 2033 | document.selection.Replace("J", "j", eeFindNext | eeReplaceAll); 2034 | document.selection.Replace("K", "k", eeFindNext | eeReplaceAll); 2035 | document.selection.Replace("L", "l", eeFindNext | eeReplaceAll); 2036 | document.selection.Replace("M", "m", eeFindNext | eeReplaceAll); 2037 | document.selection.Replace("N", "n", eeFindNext | eeReplaceAll); 2038 | document.selection.Replace("O", "o", eeFindNext | eeReplaceAll); 2039 | document.selection.Replace("P", "p", eeFindNext | eeReplaceAll); 2040 | document.selection.Replace("Q", "q", eeFindNext | eeReplaceAll); 2041 | document.selection.Replace("R", "r", eeFindNext | eeReplaceAll); 2042 | document.selection.Replace("S", "s", eeFindNext | eeReplaceAll); 2043 | document.selection.Replace("T", "t", eeFindNext | eeReplaceAll); 2044 | document.selection.Replace("U", "u", eeFindNext | eeReplaceAll); 2045 | document.selection.Replace("V", "v", eeFindNext | eeReplaceAll); 2046 | document.selection.Replace("W", "w", eeFindNext | eeReplaceAll); 2047 | document.selection.Replace("X", "x", eeFindNext | eeReplaceAll); 2048 | document.selection.Replace("Y", "y", eeFindNext | eeReplaceAll); 2049 | document.selection.Replace("Z", "z", eeFindNext | eeReplaceAll); 2050 | break; 2051 | case 703: 2052 | //删除不规则乱码(数字字母符号) 2053 | bAnswer = confirm( 2054 | "1.本功能将清除2位以上的乱码,可能导致有残余乱码。\n\n2.可能会导致内文中使用的数字、英文、网址也被删除,请慎用,并仔细检查。" 2055 | ); 2056 | if (bAnswer == true) { 2057 | document.selection.Replace( 2058 | "([\\x23-\\xff]+)(com|net|cn|org|edu)([\\x23-\\xff]*)", 2059 | "肀\\1肀\\2肀\\3", 2060 | nFlags); 2061 | //保护网址 2062 | var num = 1; 2063 | var found = document.selection.Replace("(肀.)([^肀])", "\\1肀\\2", 2064 | nFlags); 2065 | while (found) { 2066 | num++; 2067 | found = document.selection.Replace("(肀.)([^肀])", "\\1肀\\2", 2068 | nFlags); 2069 | } 2070 | document.selection.Replace( 2071 | "([^\\x23-\\xff]*)([\\d]+)([^\\x23-\\xff]*)", "\\1込\\2込\\3", 2072 | nFlags); 2073 | //连续数字分割保护 2074 | document.selection.Replace( 2075 | "([^\\x23-\\xff]*)([a-zA-Z]+)([^\\x23-\\xff]*)", 2076 | "\\1込\\2込\\3", nFlags); 2077 | //连续字母分割保护 2078 | document.selection.Replace( 2079 | "[0-9a-zA-Z]*込([\\x23-\\x26]|[\\x3A-\\x40]|[\\x5B-\\x60]|[\\x7B-\\xFF])*込[0-9a-zA-Z]*", 2080 | "", nFlags); 2081 | //删除连续字符 2082 | document.selection.Replace("[0-9a-zA-Z]*込込[0-9a-zA-Z]*", "", nFlags); 2083 | document.selection.Replace("[^込\\w][\\x23-\\xFF]{2,60}[^込\\w]", "", 2084 | nFlags); 2085 | //删除无保护字符 2086 | document.selection.Replace( 2087 | "([\\x23-\\x26]|[\\x3A-\\x40]|[\\x5B-\\x60]|[\\x7B-\\xFF]){2,60}", 2088 | "", nFlags); 2089 | //删除无保护连续字符 2090 | document.selection.Replace("込", "", nFlags); 2091 | document.selection.Replace("肀", "", nFlags); 2092 | } 2093 | break; 2094 | case 187: 2095 | //删除不规则乱码(仅非常用符号) 2096 | bAnswer = confirm("务必先运行半角标点符号 → 全角标点符号 。"); 2097 | if (bAnswer == true) { 2098 | document.selection.Replace("[\\x80-\\xFF]{2,60}", "", nFlags); 2099 | } 2100 | break; 2101 | case 1111: 2102 | //删除html代码(干扰乱码) 2103 | document.selection.Replace(" ", " ", nFlags); 2104 | bAnswer = confirm("是否删除这种形式:“不可见干扰乱码。"); 2105 | if (bAnswer == true) { 2106 | document.selection.Replace( 2107 | "[^>]+", "", nFlags); 2108 | } 2109 | document.selection.Replace(" *$", "", nFlags); 2110 | document.selection.Replace("^\\n", "", nFlags); 2111 | break; 2112 | case 1110: 2113 | //删除html代码(干扰乱码) 2114 | document.selection.Replace(" ", " ", nFlags); 2115 | bAnswer = confirm( 2116 | "1.是否删除这种形式:“不可见干扰乱码。"); 2117 | if (bAnswer == true) { 2118 | document.selection.Replace(".+<\/span>", 2119 | "", nFlags); 2120 | } 2121 | var insert1 = prompt("2.删除代码段:关键词。", "关键词,不能只输入一点"); 2122 | if (insert1 != "") { 2123 | document.selection.Replace("<(SPAN[^>]+)>", "<\\1>込\\n", nFlags); 2124 | document.selection.Replace("", "\\n肀", nFlags); 2125 | document.selection.Replace("^[ ]*\\n", "", nFlags); 2126 | var num = 1; 2127 | var found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2128 | ")", "\\2", nFlags); 2129 | while (found) { 2130 | num++; 2131 | found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2132 | ")", "\\2", nFlags); 2133 | } 2134 | var found1 = document.selection.Replace("(" + insert1 + 2135 | ")([^肀]*)\\n", "\\1", nFlags); 2136 | while (found1) { 2137 | num++; 2138 | found1 = document.selection.Replace("(" + insert1 + 2139 | ")([^肀]*)\\n", "\\1", nFlags); 2140 | } 2141 | document.selection.Replace("\\n(.*)(" + insert1 + ")(.*)\\n", 2142 | "\\1\\2\\3", nFlags); 2143 | document.selection.Replace("", "", nFlags); 2144 | document.selection.Replace("<(SPAN[^>]+)>込", "<\\1>", nFlags); 2145 | document.selection.Replace("肀", "<\/SPAN>", nFlags); 2146 | } 2147 | document.selection.Replace(" *$", "", nFlags); 2148 | document.selection.Replace("^\\n", "", nFlags); 2149 | break; 2150 | case 1100: 2151 | //HTML内容修正 2152 | alert( 2153 | "HTML内容修正使用说明:替换或删除 。\n\n1.对一行的内容操作。\n不需要的话直接取消。\n2.关键词一定要准确,并且尽可能多用几个,以免删除了其它不相关的内容,最好事先要备份,并且使用撤销功能发现错误。" 2154 | ) 2155 | break; 2156 | case 1101: 2157 | //删除html代码() 2158 | document.selection.Replace("^[ ]*<", "<", nFlags); 2159 | var insert = prompt("1.删除代码行:关键词", "关键词,不能只输入一点"); 2160 | if (insert != "") { 2161 | document.selection.Replace("]*" + insert + "[^>]*>", 2162 | "", nFlags); 2163 | } 2164 | var insert1 = prompt("2.删除代码段:关键词。", "关键词,不能只输入一点"); 2165 | if (insert1 != "") { 2166 | document.selection.Replace("(<(DIV[^>]+)>)", "\\1込\\n", nFlags); 2167 | document.selection.Replace("", "\\n肀", nFlags); 2168 | document.selection.Replace("^[ ]*\\n", "", nFlags); 2169 | var num = 1; 2170 | var found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2171 | ")", "\\2", nFlags); 2172 | while (found) { 2173 | num++; 2174 | found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2175 | ")", "\\2", nFlags); 2176 | } 2177 | var found1 = document.selection.Replace("(" + insert1 + 2178 | ")([^肀]*)\\n", "\\1", nFlags); 2179 | while (found1) { 2180 | num++; 2181 | found1 = document.selection.Replace("(" + insert1 + 2182 | ")([^肀]*)\\n", "\\1", nFlags); 2183 | } 2184 | document.selection.Replace("\\n(.*)(" + insert1 + ")(.*)\\n", 2185 | "\\1\\2\\3", nFlags); 2186 | document.selection.Replace("", "", nFlags); 2187 | document.selection.Replace("<(DIV[^>]+)>込", "<\\1>", nFlags); 2188 | document.selection.Replace("肀", "<\/DIV>", nFlags); 2189 | } 2190 | document.selection.Replace(" *$", " ", nFlags); 2191 | document.selection.Replace("^\\n", "", nFlags); 2192 | break; 2193 | case 1102: 2194 | //题头 2195 | document.selection.Replace("^[ ]*<", "<", nFlags); 2196 | var insert = prompt("删除代码:", "关键词,可只输一点“.”删除所有同类型"); 2197 | if (insert != "") { 2198 | document.selection.Replace("]*" + insert + 2199 | "[^>]*>>", "", nFlags); 2200 | } 2201 | document.selection.Replace(" *$", " ", nFlags); 2202 | document.selection.Replace("^\\n", "", nFlags); 2203 | break; 2204 | case 1109: 2205 | //删除html代码(广告脚本SCRIPT) 2206 | document.selection.Replace("^[ ]*<", "<", nFlags); 2207 | var insert = prompt("1.删除代码行:"); 2214 | if (bAnswer == true) { 2215 | document.selection.Replace("", "\\n肀", nFlags); 2217 | var num = 1; 2218 | var found = document.selection.Replace("", "", nFlags); 2227 | } 2228 | document.selection.Replace(" *$", " ", nFlags); 2229 | document.selection.Replace("^\\n", "", nFlags); 2230 | break; 2231 | case 1103: 2232 | //删除html代码(文本链接
) 2233 | var insert = prompt("删除代码:", "关键词,或只输一点“.”删除所有同类型"); 2234 | if (insert != "") { 2235 | document.selection.Replace("]*" + insert + "[^>]*><\/A>", 2236 | "", nFlags); 2237 | } 2238 | document.selection.Replace(" *$", " ", nFlags); 2239 | document.selection.Replace(" *$", "", nFlags); 2240 | document.selection.Replace("^\\n", "", nFlags); 2241 | break; 2242 | case 1104: 2243 | //删除html代码(图片链接) 2244 | var insert = prompt("删除代码行:", "关键词,或只输一点“.”删除所有同类型"); 2245 | if (insert != "") { 2246 | document.selection.Replace("]*" + insert + "[^>]*><\/IMG>", 2247 | "", nFlags); 2248 | } 2249 | document.selection.Replace(" *$", " ", nFlags); 2250 | document.selection.Replace("^\\n", "", nFlags); 2251 | break; 2252 | case 1105: 2253 | //删除html代码(整行关键词) 2254 | var insert = prompt("1.删除代码行:关键词", "关键词,或只输一点“.”删除所有同类型"); 2255 | if (insert != "") { 2256 | document.selection.Replace("]*" + insert + "[^>]*>", "", 2257 | nFlags); 2258 | } 2259 | var insert1 = prompt("2.删除代码段:关键词。", "关键词,不能只输入一点"); 2260 | if (insert1 != "") { 2261 | document.selection.Replace("<(TD[^>]+)>", "<\\1>込\\n", nFlags); 2262 | document.selection.Replace("", "\\n肀", nFlags); 2263 | document.selection.Replace("^[ ]*\\n", "", nFlags); 2264 | var num = 1; 2265 | var found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2266 | ")", "\\2", nFlags); 2267 | while (found) { 2268 | num++; 2269 | found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2270 | ")", "\\2", nFlags); 2271 | } 2272 | var found1 = document.selection.Replace("(" + insert1 + 2273 | ")([^肀]*)\\n", "\\1", nFlags); 2274 | while (found1) { 2275 | num++; 2276 | found1 = document.selection.Replace("(" + insert1 + 2277 | ")([^肀]*)\\n", "\\1", nFlags); 2278 | } 2279 | document.selection.Replace("\\n(.*)(" + insert1 + ")(.*)\\n", 2280 | "\\1\\2\\3", nFlags); 2281 | document.selection.Replace("", "", nFlags); 2282 | document.selection.Replace("<(TD[^>]*)>込", "<\\1>", nFlags); 2283 | document.selection.Replace("肀", "<\/TD>", nFlags); 2284 | } 2285 | document.selection.Replace(" *$", " ", nFlags); 2286 | document.selection.Replace("^\\n", "", nFlags); 2287 | break; 2288 | case 1106: 2289 | //删除html代码(整段关键词) 2290 | var insert = prompt("1.删除代码行:关键词", "关键词,或只输一点“.”删除所有同类型"); 2291 | if (insert != "") { 2292 | document.selection.Replace("[^>]*" + insert + "[^>]*", "", 2293 | nFlags); 2294 | } 2295 | var insert1 = prompt("2.删除代码段:关键词。", "关键词,不能只输入一点"); 2296 | if (insert1 != "") { 2297 | document.selection.Replace("<(TR[^>]*)>", "<\\1>込\\n", nFlags); 2298 | document.selection.Replace("", "\\n肀", nFlags); 2299 | document.selection.Replace("^[ ]*\\n", "", nFlags); 2300 | var num = 1; 2301 | var found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2302 | ")", "\\2", nFlags); 2303 | while (found) { 2304 | num++; 2305 | found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2306 | ")", "\\2", nFlags); 2307 | } 2308 | var found1 = document.selection.Replace("(" + insert1 + 2309 | ")([^肀]*)\\n", "\\1", nFlags); 2310 | while (found1) { 2311 | num++; 2312 | found1 = document.selection.Replace("(" + insert1 + 2313 | ")([^肀]*)\\n", "\\1", nFlags); 2314 | } 2315 | document.selection.Replace("\\n(.*)(" + insert1 + ")(.*)\\n", 2316 | "\\1\\2\\3", nFlags); 2317 | document.selection.Replace("", "", nFlags); 2318 | document.selection.Replace("<(TR[^>]*)>込", "<\\1>", nFlags); 2319 | document.selection.Replace("肀", "<\/TR>", nFlags); 2320 | } 2321 | document.selection.Replace(" *$", " ", nFlags); 2322 | document.selection.Replace("^\\n", "", nFlags); 2323 | break; 2324 | case 1107: 2325 | //删除html代码(表格) 2326 | var insert = prompt("1.删除代码行:关键词
", "关键词,或只输一点“.”删除所有同类型"); 2327 | if (insert != "") { 2328 | document.selection.Replace("]*" + insert + 2329 | "[^>]*>", "", nFlags); 2330 | } 2331 | var insert1 = prompt("2.删除代码段:关键词。", "关键词,不能只输入一点"); 2332 | if (insert1 != "") { 2333 | document.selection.Replace("<(TABLE[^>]*)>", "<\\1>込\\n", nFlags); 2334 | document.selection.Replace("", "\\n肀", nFlags); 2335 | document.selection.Replace("^[ ]*\\n", "", nFlags); 2336 | var num = 1; 2337 | var found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2338 | ")", "\\2", nFlags); 2339 | while (found) { 2340 | num++; 2341 | found = document.selection.Replace("\\n([^込]*)(" + insert1 + 2342 | ")", "\\2", nFlags); 2343 | } 2344 | var found1 = document.selection.Replace("(" + insert1 + 2345 | ")([^肀]*)\\n", "\\1", nFlags); 2346 | while (found1) { 2347 | num++; 2348 | found1 = document.selection.Replace("(" + insert1 + 2349 | ")([^肀]*)\\n", "\\1", nFlags); 2350 | } 2351 | document.selection.Replace("\\n(.*)(" + insert1 + ")(.*)\\n", 2352 | "\\1\\2\\3", nFlags); 2353 | document.selection.Replace("", "", nFlags); 2354 | document.selection.Replace("<(TABLE[^>]*)>込", "<\\1>", nFlags); 2355 | document.selection.Replace("肀", "<\/TABLE>", nFlags); 2356 | } 2357 | document.selection.Replace(" *$", " ", nFlags); 2358 | document.selection.Replace("^\\n", "", nFlags); 2359 | break; 2360 | case 1108: 2361 | //删除html代码() 2362 | var insert = prompt("删除代码:", "关键词,或只输一点“.”删除所有同类型"); 2363 | if (insert != "") { 2364 | document.selection.Replace("]*" + insert + 2365 | "[^>]*>", "", nFlags); 2366 | } 2367 | document.selection.Replace(" *$", "", nFlags); 2368 | document.selection.Replace("^\\n", "", nFlags); 2369 | break; 2370 | case 10813: 2371 | document.selection.Replace("\\n\\n", "", nFlags); 2372 | document.selection.Replace("\\n", "", nFlags); 2373 | document.selection.Replace("", "\\n", nFlags); 2374 | default: 2375 | } --------------------------------------------------------------------------------