[{"articleStyle":0,"cacheFirst":false,"customOrder":-10106464,"enableJs":true,"enabled":true,"enabledCookieJar":false,"lastUpdateTime":0,"loadWithBaseUrl":true,"loginUrl":"◎书源仓库和论坛◎\n【https:\/\/yckceo.vip\/】《源仓库》@https:\/\/gitee.com\/yc-sy\/yd\/raw\/master\/dy\/yd\/yck.png@『阅读书源仓库』\n【https:\/\/shuyuan.yiove.com】《Yiove 书源仓库》@https:\/\/shuyuan.yiove.com\/favicon.ico@『三千书源』\n【http:\/\/fabu.yihulove.top】《YX源仓库》@http:\/\/yx.ccute.xyz\/assets\/iframe\/images\/logo.png@『来自书源爱好者的收集小站』\n【https:\/\/ysqbbs.com】《源社区》@https:\/\/ysqbbs.com\/data\/attachment\/common\/template\/boardimg_20241216d6f4lsl6.png@『第三方论坛』\n------------------\n◎大佬发布页◎\n【https:\/\/yolo52.github.io\/Yuedu】《Yolo》@@『Legado』\n【https:\/\/loyc.xyz\/】《洛娅橙》@https:\/\/gitee.com\/lyc486\/yuedu\/raw\/master\/favicon.gif@『阅读发布页』\n【https:\/\/ged520.pages.dev\/index1】《辞晨》@https:\/\/ged520.pages.dev\/13f331fe4b8693510c09d600cb1601f4d873ca214a282746dc4fdcc80280086e.0.JPG@『辞之次元』\n【https:\/\/skybook.pages.dev】《明月照大江》@@『明月书阁』\n【https:\/\/qyyuapi.com】《xiaohan231》@https:\/\/qyyuapi.com\/logo.png@『小寒发布页』\n【https:\/\/yuedu.xiu2.xyz\/】《XIU2》@@『「阅读」APP 精品书源』\n【https:\/\/ttxz.eu.org】《天天的鸟蛋蛋》@https:\/\/blog.ttxz.eu.org\/icon.png@『玄蛋秘阁』\n【https:\/\/www.yesui.me\/】《情无羁》@http:\/\/q1.qlogo.cn\/g?b=qq&nk=3174775897&s=640@『情无羁的世界』\n【https:\/\/youfeng.pages.dev\/】《怣疯》@https:\/\/youfeng.pages.dev\/static\/img\/logokuang.png@『Youfeng 怣疯的个人主页』\n【https:\/\/source.jwyihao.top\/】《吉的书源集》@@『source-j-legado』\n【https:\/\/hlb.leleosd.top\/】《活力宝》@https:\/\/hlb.leleosd.top\/img\/%E5%A4%B4%E5%83%8F.jpg@『活力宝の小窝』\n【https:\/\/flowus.cn\/ycheng\/share\/923f5a35-6dcf-47d1-b8eb-b9c5ef3ed39b】《一程》@https:\/\/gitee.com\/yc-sy\/yd\/raw\/master\/dy\/yd\/gx.png@『书源、订阅、教程、一键导入』\n【https:\/\/www.jingluo.love】《鲸落》@https:\/\/cravatar.cn\/avatar\/63de9bfa49f26da0833bee63f0068019?d=blank@『鲸落博客』\n------------------\n◎书源收集◎\n【http:\/\/yuedu.miaogongzi.net\/gx.html】《喵公子》@https:\/\/i0.hdslb.com\/bfs\/face\/a8f327d80028a97bf3b6f8d5afa260179c623268.jpg@『阅读书源』\n【https:\/\/legado.aoaostar.com】《AOAOSTAR》@@『「阅读」APP 源』\n【https:\/\/www.xn--1jqz79e.com\/】《日更书源》@https:\/\/i.loli.net\/2021\/06\/23\/S7rvWRZtPIq34MJ.png@『日更书源发布主页』\n【https:\/\/mzrjk.top】《开源阅读书源导航》@@『爱推书源』\n【https:\/\/383842.xyz】《粉白妙妙屋》@https:\/\/dlink.host\/1drv\/aHR0cHM6Ly8xZHJ2Lm1zL2kvcyFBa1pRN2dYUGY1VzlnWmxPa1VVWlljaDZxVDM3Unc.gif@『书源备份 小说txt下载 影视资源观看 手机软件APP 破解资源 电脑破解资源 root模块 音乐mp3下载等』\n------------------\n◎阅读官方◎\n【https:\/\/mp.weixin.qq.com\/mp\/appmsgalbum?__biz=MzIzMTc0NzE1MQ==&action=getalbum&album_id=1429936613618188289&scene=126#wechat_redirect】《 阅读教程》@https:\/\/gitee.com\/yc-sy\/yd\/raw\/master\/dy\/yd\/ydlogo.png@『微信公众号(已停更)』\n【https:\/\/mp.weixin.qq.com\/mp\/appmsgalbum?__biz=MzIzMTc0NzE1MQ==&action=getalbum&album_id=1337256947799916544&scene=126#wechat_redirect】《 阅读资源》@https:\/\/gitee.com\/yc-sy\/yd\/raw\/master\/dy\/yd\/ydlogo.png@『微信公众号(已停更)』\n【https:\/\/gedoor.github.io\/】《开源阅读》@@『阅读官方网站(已停更)』\n【https:\/\/pd.qq.com\/s\/f6l8nfo1h】《阅读QQ频道》@@『QQ频道』\n【https:\/\/t.me\/Legado_Channels】《阅读TG频道》@@『TG频道』\n------------------\n◎阅读版本◎\n【https:\/\/miaogongzi.lanzout.com\/b01rgkhhe】《阅读安卓测试版》@@『由喵公子提供』\n【https:\/\/fzh134679.lanzouo.com\/b00yaboqvi】《阅读安卓正式版》@@『密码均为0000』\n【https:\/\/busisu.lanzoub.com\/s\/yuedupro】《阅读谷歌商店版》@@『Pro版本  不似苏 密码:777(已不更)』\n【https:\/\/hahahahahaha.lanzoux.com\/b08rjey5i】《阅读X共存版》@@『旧版共存版  密码:no18ls(已不更)』\n------------------\n◎资源◎\n【https:\/\/wwa.lanzoux.com\/b05fs5ccd】《关耳》@@『密码:guaner』\n【https:\/\/wwr.lanzoui.com\/b03p9ftpc】《小说》@@『Thomas哟 密码:read』\n【https:\/\/wwr.lanzoui.com\/b03q7n81e】《影视》@@『Thomas哟 密码:read』\n【https:\/\/wwr.lanzoui.com\/b03qhlncd】《有声》@@『Thomas哟 密码:read』\n【https:\/\/wwr.lanzoui.com\/b03qlyydc】《其他》@@『Thomas哟 密码:read』\n【https:\/\/wwdn.lanzoue.com\/b0d5g0tba】《迷蝶》@@『密码:iori』\n【https:\/\/y-c.lanzoui.com\/b00r1ko0d】《一程》@@『密码:sydy』\n【https:\/\/xiao233666.lanzoui.com\/b02q6wfuh】《歌行灯》@@『密码:投币』\n【https:\/\/ls125781003.lanzoum.com\/b066gazed】《海阔小刘》@@『密码:8u15』\n【https:\/\/wwn.lanzoub.com\/b01pihymd】《本雁霜晨月》@@『密码:yuedu』\n【https:\/\/yuntuxs.lanzouj.com\/b02r56jch】《星空看书》@@『密码:hdvo』\n【https:\/\/pobing.lanzoui.com\/b0cxk0w8b】《破冰》@@『密码:59bV』\n【https:\/\/wwu.lanzouv.com\/b020rirbg】《千仞云》@@『密码:关山』\n【https:\/\/acold.lanzoux.com\/b00u00nih】《殁漂遥》@@『密码:a0iu』\n【https:\/\/wws.lanzoui.com\/b0269ornc】《于花都之中》@@『密码:2333』\n【https:\/\/www.lanzoux.com\/b0bw8jwoh】《烏雲》@@『替换净化』\n【https:\/\/lsy-again.lanzouf.com\/b01dlfjej】《七十六时》@@『字体  密码:5tfp』\n------------------\n◎工具◎\n【https:\/\/jijianconvert.netlify.app\/yuedutool】《开源阅读\/源阅发现转换工具》@@『』\n【https:\/\/www.jyshare.com\/front-end\/854】《正则表达式在线测试》@@『』","preload":false,"ruleArticles":"<js>\njson=[];\nlist=baseUrl.replace(\/http.*?wd=\\s*\/,'').split('•');\nfor(i = 0;i<list.length-1;i++){\n\tlet index = list[i].match(\/【(.*?)】\/)[1];\n\tlet src = list[i].match(\/@(.*?)@\/)[1];\n\tlet text = list[i].match(\/《(.*?)》\/)[1];\n\tlet intro = list[i].match(\/『(.*?)』\/)[1];\n\tjson.push({index:index,src:src,text:text,intro:intro})\n\t}\nJSON.stringify(json)<\/js>\n$.[*]","ruleDescription":"❗️0、3、开始❗️\n<style>\niframe{\n\twidth:0;\n\theight:0\n\t}\n\tbutton{\n\t\tposition:absolute;\n\ttop:35%;\n\tfont-size:2em;\n\twidth:80px;\n\theight:50px;\n\tright:0\n\t\t}\ninput{\n\twidth:80%;\n\theight:40px;\n\tborder:1px solid #000;\n\tborder-radius:5px;\n\toutline:0;\n\tposition:absolute;\n\ttop:25%\n\t}\n<\/style>\n<input type=\"text\" id=\"text\">\n<button onClick=\"clickme()\">导入<\/button>\n<iframe id=\"iframe\" src=\"\"><\/iframe>\n<script > var content = clipboardData.getData(\"Text\"); if (content!=null) { document.write(\"<center><font size=5 color=red>WARNING, TEXT RETRIEVED:<\/font> (see below)<br><br><span style='background-color: #FFFF00'>\"); document.write(content); document.write(\"<\/span>\");} else { document.write('<center>No text found in clipboard. This is a good thing!<br><br>Works with Internet Explorer and Netscape.'); } <\/script>\n<script>\nfunction clickme(){\ntext=document.getElementById('text').value;\nurl=\"legado:\/\/import\/auto?src=\"+text;\ndocument.getElementById('iframe').src=url;\n}\n<\/script>\n❗️0、3、结束❗️\n❗️0、1、开始❗️\n <script>function $(selector) { return document.querySelector(selector); }\nfunction $$(selector) { return document.querySelectorAll(selector); }<\/script>\n\n<style>\nbutton,input{\nmargin:5px\n}\n#basic-addon1,#replaceSpan1{\nbackground-color:Azure;\npadding:3px\n}\nbutton,input[type=\"button\"]{\n\toutline:none;\n\theight:30px;\n\tbox-shadow:2px 1px #CFD8DC;\n\tbackground:#fff;\n\tborder:1px solid #607D8B;\n\tborder-radius:6px;\n\t}\ntextarea{\nbackground-color:GhostWhite;\nborder:0px solid black\n}\n.bt1,.bt4{\n\tbackground:#fff;\n\twidth:30%;\n\tborder:1px solid green;\n\tborder-radius:10px;\n\t}\n#bt4:active,#bt2:active{\n\tbackground:#CFD8DC\n\t}\n\t#bt4,#bt2{\n\t\tbackground:#fff;\n\twidth:100%;\n\tborder:1px solid #607D8B;\n\tborder-radius:6px;\n\t\t}\n\t\tbutton:active,input[type=\"button\"]:active{\n\tbackground:#C8E6C9\n\t}\n\t#success{\n\t\ttext-align:center;\n\t\tborder:1px solid green;\n\t\tposition:fixed;\n\t\tleft:40%;\n\t\twidth:20%;\n\t\tbackground:#fff;\n\t\tborder-radius:5px;\n\t\tdisplay:none;\n\t\ttop:2px;\n\t\tbox-shadow:2px 1px 3px #CFD8DC;\n\t\t}\n\t\t#pageclass,#pageclass2{\n\t\t\twidth:100%\n\t\t\t}\n\t\t\t.pageclass{\n\t\t\t\tfont-size:10px\n\t\t\t\t}\n<\/style>\n \n<a href=\"https:\/\/www.sojson.com\/rehtml\">html转义<\/a>&nbsp;&nbsp;<a href=\"http:\/\/www.jsons.cn\/urlencode\/\">URL解码<\/a>\n<textarea rows=\"10\" id=\"input\" onfocus=\"di()\" placeholder=\"输入带html标签的发现内容\"><\/textarea>\n<button onclick=\"getInput();dis()\" class=\"bt1\">格式化发现[旧]<\/button>\n<button onclick=\"getInput2();dis()\" class=\"bt1\">格式化发现[新]<\/button>\n<button onclick=\"getInput3();\" class=\"bt1\">发现格式互转<\/button>\n\n<button onclick=\"getInput4(1);\" id=\"bt4\">（新发现）改样式先点这个<\/button>\n<button onclick=\"getInput4(2,1);\" class=\"bt4\">一排一个<\/button>\n<button onclick=\"getInput4(2,2);\" class=\"bt4\">一排两个<\/button>\n<button onclick=\"getInput4(2,3);\" class=\"bt4\">一排三个<\/button>\n<button onclick=\"getInput4(2,4);\" class=\"bt4\">一排四个<\/button>\n\n<button onclick=\"copyText()\" id=\"bt2\">一键复制<\/button>\n\n<div class=\"pageclass\">输入分类里的链接，如：\n\/sort\/xuanhuan\/\n写成\n\/sort\/分类\/\n<\/div>\n<input id=\"pageclass\">\n<div class=\"pageclass\">输入带有翻页的链接，如：\n\/sort\/xuanhuan\/2.html\n写成\n\/sort\/分类\/页码.html\n<\/div>\n<input id=\"pageclass2\">\n\n<div class=\"pageclass\">\n第一页跟第二页不一样？\n输入不一样的部分（第二页比第一页多出来的部分）\n如\nindex_页码.html\n<\/div>\n<input id=\"pageclass3\">\n\n\n<button onclick=\"okpage()\">确认加入翻页（仅旧发现）<\/button>\n\n\n<p id=\"success\">复制成功！<\/p><br><br><br>\n<p>正则表达式匹配替换<\/p>\n <div class=\"form-group\">\n                    <div class=\"col-sm-12\">\n                        <textarea class=\"form-control\" onmouseover=\"this.focus();\" id=\"textSour\" name=\"textSour\" rows=\"10\" style=\"max-height: 2222px;\" placeholder=\"请输入要验证的文本\"><\/textarea>\n                    <\/div>\n                <\/div>\n                <div class=\"form-group\">\n                    <div class=\"col-sm-12\">\n                        <div class=\"input-group\">\n                            <span class=\"input-group-addon\" id=\"basic-addon1\">正则表达式<\/span>\n                            <input type=\"text\" class=\"form-control\" id=\"textPattern\" name=\"textPattern\" placeholder=\"请输入自定义正则表达式 例如：\\d{6}\" aria-describedby=\"basic-addon1\" style=\"width: 65%;\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"form-group\">\n                    <div class=\"col-sm-2\">\n                        <div class=\"input-group\" style=\"margin-left: 20px;\">\n                            <label class=\"checkbox\" style=\"cursor: pointer;\">\n                                <input type=\"checkbox\" value=\"global\" checked=\"checked\" id=\"optionGlobal\" name=\"optionGlobl\">全局搜索<\/label>\n                        <\/div>\n                    <\/div>\n                    <div class=\"col-sm-2\">\n                        <div class=\"input-group\" style=\"margin-left: 20px;\">\n                            <label class=\"checkbox\" style=\"cursor: pointer;\">\n                                <input type=\"checkbox\" value=\"ignoreCase\" id=\"optionIgnoreCase\" name=\"optionIgnoreCase\">忽略大小写<\/label>\n                        <\/div>\n                    <\/div>\n                    <div class=\"col-sm-8\">\n                        <input type=\"button\" onclick=\"return onMatch();\" value=\"验证匹配内容\" class=\"btn btn-success\">\n                        <input type=\"button\" onclick=\"Empty();\" value=\"清空输入框\" class=\"btn btn-danger\">\n<button onclick=\"copyText3()\">一键复制<\/button>\n                    <\/div>\n                <\/div>\n                <div class=\"form-group\">\n                    <div class=\"col-sm-12\">\n<div id=\"textResult\"><\/div>\n                        <textarea onmouseover=\"this.focus();\" id=\"textMatchResult\" class=\"form-control\" rows=\"10\" style=\"max-height: 2222px;\" placeholder=\"得到验证后内容，内容为空为验证失败\" readonly=\"readonly\"><\/textarea>\n                    <\/div>\n                <\/div>\n                <div class=\"form-group\">\n                    <div class=\"col-sm-4\">\n                        <div class=\"input-group\" style=\"width: 98%;\">\n                            <span class=\"input-group-addon\" id=\"replaceSpan1\">替换文本<\/span>\n                            <input type=\"text\" class=\"form-control\" id=\"textReplace\" name=\"textReplace\" placeholder=\"请输入替换内容\" aria-describedby=\"replaceSpan1\" style=\"width: 70%;\">\n<button value=\"{\\{page}}\" onclick=\"pp(this.value)\">page<\/button>\n\n<button value=\"$\" onclick=\"pp(this.value)\">$<\/button>\n\n<button value=\"'\" onclick=\"pp(this.value)\">'<\/button>\n<button value=\"\/\" onclick=\"pp(this.value)\">\/<\/button>\n<button value=\"_\" onclick=\"pp(this.value)\">_<\/button>\n<button value=\"-\" onclick=\"pp(this.value)\">-<\/button>\n                        <\/div>\n                    <\/div>\n                    <div class=\"col-sm-2\">\n                        <div class=\"input-group\">\n                            <button onclick=\"return onReplace()\" class=\"btn btn-success\">替换匹配内容<\/button>\n<button onclick=\"copyText2()\">一键复制<\/button>\n                        <\/div>\n                    <\/div>\n                    <div class=\"col-sm-6\">\n                    <\/div>\n                <\/div>\n                <div class=\"form-group\">\n                    <div class=\"col-sm-12\">\n                        <textarea readonly=\"readonly\" id=\"textReplaceResult\" class=\"form-control\" rows=\"10\" placeholder=\"此处为替换后内容\"><\/textarea>\n                    <\/div>\n                <\/div>\n                <\/form>\n            <\/div>\n        <\/div>\n<script>\n var copyText = function() {\n\tvar text = document.getElementById('input');\n    \/\/ 选中文本\n    text.select()\n    \/\/ 复制\n    document.execCommand('copy')\n    text.blur()\n    $(\"#success\").style.display = \"block\";\n    setTimeout(function(){\n                $(\"#success\").style.display = \"none\";\n          },500)\n}\n\nvar copyText2 = function() {\n    var text = document.getElementById('textReplaceResult');\n    \/\/ 选中文本\n    text.select()\n    \/\/ 复制\n    document.execCommand('copy')\n    text.blur()\n    $(\"#success\").style.display = \"block\";\n    setTimeout(function(){\n                $(\"#success\").style.display = \"none\";\n          },500)\n}\n\nvar copyText3 = function() {\n    var text = document.getElementById('textMatchResult');\n    \/\/ 选中文本\n    text.select()\n    \/\/ 复制\n    document.execCommand('copy')\n    text.blur()\n    $(\"#success\").style.display = \"block\";\n    setTimeout(function(){\n                $(\"#success\").style.display = \"none\";\n          },500)\n}\n\n<\/script>\n\n\n<script>\nfunction pp(a){\n\tb=a.replace(\/\\\\\/,'');\n$(\"#textReplace\").value+=b;\n$(\"#textReplace\").focus()\n}\nfunction dis(){\ndocument.getElementById(\"bt1\").disabled=true;\ndocument.getElementById(\"bt2\").disabled=true\n}\nfunction di(){\ndocument.getElementById(\"bt1\").disabled=false;\ndocument.getElementById(\"bt2\").disabled=false\n}\n\nfunction parseToDOM(str){\n   var div = document.createElement(\"div\");\n   if(typeof str == \"string\")\n       div.innerHTML = str;\n   return div.querySelectorAll(\"a\"); ;\n}\n\n\nfunction okpage(){\n\tpageclass = $(\"#pageclass\").value.replace(\/(\\+|\\?)\/g,'\\\\$1');\n\n\tpageclass=pageclass.replace(\/分类$\/g,'(.*)').replace(\/分类(?!$)\/g,'(.*?)');\n\t\n\treg = new RegExp(pageclass)\n\tpageclass2 = $(\"#pageclass2\").value;\n\thtml = $(\"#input\").value;\n\tpageclass2=pageclass2.replace(\/页码\/g,'{\\{page}}');\n\t\n\tpageclass3 =$(\"#pageclass3\").value.replace(\/(\\+|\\?)\/g,'\\\\$1').replace(\/页码\/,'{\\{page}}')\n\n\th = \"\";\n\tif(html.match(\/::\/) && pageclass!=\"\" && pageclass2!=\"\" && !\/{\\{page}}\/.test(html)){\n\t\tlist = html.split(\/\\n|&&\/);\n\t  for(i in list){\n\t  \tif(list[i].match(\/::\/)){\n\t       \ttext = list[i].match(\/(.*?)::\/)[1];\n\t       \thref=list[i].match(\/::(.*)\/)[1]\n\t       \tif(href.match(reg)){\n\t  \t        \thref = pageclass2.replace(\/分类\/g,href.match(reg)[1])\n\t  \t\t   }else{href=href}\t\n\t      \t\th+=text+\"::\"+href+\"\\n\"\n\t  \t }\n\t  \t}\n\t  \t$(\"#input\").value = h\n\t\t}\n\t\t\n\t\thtml = $(\"#input\").value\n\t\tif(pageclass3!=\"\" && !\/<,.*?>\/.test(html)){\n\t\t\t reg=new RegExp(\"(\"+pageclass3+\")\",'g');\n\t\t  $(\"#input\").value =\thtml.replace(reg,'<,$1>')\n\t\t\t\n\t\t\t}\n\t\t\n\t\t\n\t}\n\n\n\nfunction getInput(){\nvar str=$(\"#input\").value;\nvar list = parseToDOM(str);\nif(list.length==0){\n\t$(\"#input\").placeholder = \"格式化失败！！！请检查是否为带html标签的文本\"\n\t}else{\n\t\t\nvar html = \"\";\nfor (let i=0;i<list.length;i++){\n\tlet text = list[i].innerText;\n\tlet href = list[i].getAttribute(\"href\");\n\thtml += text + \"::\" + href +\"\\n\"\n\t}\n$(\"#input\").value = html\n}\n}\n\nfunction getInput2(){\nvar str=$(\"#input\").value;\nvar list = parseToDOM(str);\nif(list.length==0){\n\t$(\"#input\").placeholder = \"格式化失败！！！请检查是否为带html标签的文本\"\n\t}else{\nvar html = [];\nfor (let i=0;i<list.length;i++){\n\tlet text = list[i].innerText;\n\tlet href = list[i].getAttribute(\"href\");\n\thtml.push({\n\t\ttitle:text,\n\t\turl : href\n\t\t})\n\t}\n$(\"#input\").value = JSON.stringify(html)\n}\n}\n\nfunction getInput3(){\ntext=$(\"#input\").value;\nif(text.match(\/\\&\\&|::\/g)){\ntext=text.replace(\/\\&\\&\/g,'\\n');\nlist=text.match(\/.*::.*\/g);\nhtml=[];\nfor(i=0;i<list.length;i++){\nl=list[i].match(\/(.*)::(.*)\/);\ntitle=l[1];url=l[2]\nhtml.push({\ntitle:title,\nurl:url\n})\n}\n$(\"#input\").value=JSON.stringify(html)\n}else{\nhtml=\"\";\njson=eval(text);\nfor(i in json){\nhtml+=json[i].title+\"::\"+json[i].url+\"\\n\"\n}\n$(\"#input\").value=html\n}\n}\n\n\nfunction getInput4(flag,x){\ntext=$(\"#input\").value;\nif(flag==1){\njson=JSON.parse(text);\nfor(i in json){\njson[i].style={}\njson[i].style.layout_flexGrow=1\n}\n}else if(flag==2){\n\tdata={1:1,2:0.4,3:0.25,4:0.2}\njson=JSON.parse(text);\nfor(i in json){\njson[i].style.layout_flexBasisPercent=data[x]\n}\n}\n$(\"#input\").value=JSON.stringify(json)\n}\n\n\n\n\nfunction setVisible(idElement, visible) {\n    var obj = document.getElementById(idElement);\n    obj.style.visibility = visible ? \"visible\" : \"hidden\";\n}\nfunction isValidFields() {\n    var textSour = document.getElementById(\"textSour\");\n    if (null == textSour.value || textSour.value.length < 1) {\n        textSour.focus();\n        JsonsMessageBox($(\"#textSour\"), \"请输入待匹配文本\");\n        return false;\n    }\n    var textPattern = document.getElementById(\"textPattern\");\n    if (null == textPattern.value || textPattern.value.length < 1) {\n        textPattern.focus();\n        JsonsMessageBox($(\"#textPattern\"), \"请输入正则表达式\");\n        return false;\n    }\n    return true;\n}\nfunction buildRegex() {\n    var op = \"\";\n    if (document.getElementById(\"optionGlobal\").checked) op = \"g\";\n    if (document.getElementById(\"optionIgnoreCase\").checked) op = op + \"i\";\n    return new RegExp(document.getElementById(\"textPattern\").value, op);\n}\nfunction onMatch() {\n    if (!isValidFields())\n        return false;\n    document.getElementById(\"textMatchResult\").value = \"\";\n    var regex = buildRegex();\n    var result = document.getElementById(\"textSour\").value.match(regex);\n    if (null == result || 0 == result.length) {\n        document.getElementById(\"textMatchResult\").value = \"（没有匹配）\";\n        return false;\n    }\n    if (document.getElementById(\"optionGlobal\").checked) {\nvar re=\"\";\n        var strResult = \"共找到 \" + result.length + \" 处匹配：\\r\\n\";\ndocument.getElementById(\"textResult\").innerText=strResult;\nfor (var i = 0; i < result.length; ++i){ re += result[i] + \"\\r\\n\";}\n        document.getElementById(\"textMatchResult\").value = re;\n    }\n    else {\n   document.getElementById(\"textMatchResult\").value = \"匹配位置：\" + regex.lastIndex + \"\\r\\n匹配结果：\"+result[0];\n    }\n    return true;\n}\nfunction onReplace() {\n    var str = document.getElementById(\"textSour\").value;\n    var regex = buildRegex();\n    document.getElementById(\"textReplaceResult\").value = str.replace(regex, document.getElementById(\"textReplace\").value);\n}\nfunction reset() {\n     $(\"#textSour\").value=\"\";\n    $(\"#textPattern\").value=\"\";\n    $(\"#textMatchResult\").value=\"\";\n    $(\"#textReplace\").value=\"\";\n    $(\"#textReplaceResult\").value=\"\";\n}\n$(\"#regCommon a\").click(function () {\n    $(\"#textPattern\").val($(this).attr(\"t\"));\n    onMatch();\n});\nfunction Empty() {\n    $(\"#textSour\").value=\"\";\n    $(\"#textMatchResult\").value=\"\";\n    $(\"#textReplace\").value=\"\";\n    $(\"#textReplaceResult\").value=\"\";\n    $(\"#textSour\").select();\n}\n<\/script>\n\n❗️0、1、结束❗️\n\n——————分割线————————\n{{}}\n<js>\nindex='{{$.index}}';\nif(index.match(\/\\d+、\\d+、\/)){\nreg=eval('\/❗️'+index+'开始❗️[\\\\s\\\\S]+?❗️'+index+'结束❗️\/g');\nreg2=eval('\/❗️'+index+'..❗️\/g');\nresult=result.match(reg)?result.match(reg)[0]:'<br\/>'\nresult.replace(reg2,'')}else{result=''}\n<\/js>","ruleImage":"$.src","ruleLink":"$.index\n@js:\nif(!result.match(\/^http\/) && !result.match(\/\\d+、\\d+、\/)){\nresult=\"?url=\"+encodeURIComponent(result)\n}else{result=result}","rulePubDate":"$.intro","ruleTitle":"$.text","showWebLog":false,"singleUrl":false,"sortUrl":"@js:\nlet html = String(source.loginUrl + \"------------------\\n\");\nlet result =\"\";\nlet list = html.split('------------------\\n');\nfor(i = 0;i<list.length-1;i++){\n\tjava.log(list[i])\n\t分类名称 = list[i].match(\/◎(.*?)◎\/)[1];\nlet all =\tString(list[i]).replace(\/◎.*◎\\n\/,'').split('\\n');\nresult += 分类名称+\"::http:\/\/www.baidu.com?wd=\";\n\t\t\tfor(j in all){\n\tresult += all[j]+\"•\"\n\t\t}\n\t\tresult +=\"\\n\"\n\t}\nresult = String(result).replace(\/••\/g,'•');","sourceComment":"序号为0、0、这种格式，用于自定义网页，自定义网页写在描述规则里，序号不能重复，格式如下：\n❗️0、0、开始❗️\n自定义网页源码\n❗️0、0、结束❗️\n\n自定义分类请参考以下格式，符号不可以变，分类写在登录url里，一行一个内容\n\n◎分类1◎\n【序号或链接】《列表名称》@图片链接@『简介』\n【序号或链接】《列表名称》@图片链接@『简介』\n【序号或链接】《列表名称》@图片链接@『简介』\n------------------\n◎分类2◎\n【序号或链接】《列表名称》@图片链接@『简介』\n------------------\n◎分类3◎\n【序号或链接】《列表名称》@图片链接@『简介』","sourceGroup":"阅读","sourceIcon":"https:\/\/icweiliimg1.pstatp.com\/weili\/bl\/253428986373472281.jpg","sourceName":"阅读订阅","sourceUrl":"阅读订阅","style":"#jhss a{\nfont-size:10px;\ncolor:red;\ntext-decoration:none;\n}\n\n#jhss p{\ndisplay:inline-block;\nwidth:8em;\n}\n\n#jhss p{\nmargin:0;\npadding:0;\ncolor:#666;\n}\n\n#jhss div{\nmargin:0;\npadding:10px;\n}\n\n#jhss h1{\nmargin:0;\npadding:9px;\nfont-size:20px;\n}\n\n#jhss input{\nmargin:2px;\npadding:2px 6px;\nfont-size: 1em;\nbackground-color:rgba(200,200,200,0.5);\ncolor:#A00;\nborder:0;\nborder-radius: 3px;\ntext-decoration: none;\ntext-align:center;\n}\ntextarea{\nwidth:100%\n}\n.menu {\n\tjustify-content: space-between;\n\tmax-width: 900px;\n\tmargin: 0 5px;\n}\n.menu .button {\n\twidth: 55px;\n\theight: 15px;\n\tmin-height: 5px;\n\tmargin: 5px 0px;\n\tcursor: pointer;\n}\n.button text {\n\ttext-anchor: middle;\n\tdominant-baseline: middle;\n}\n\n.button rect {\n\twidth: 100%;\n\theight: 100%;\n\tfill: transparent;\n\tstroke: #666;\n\tstroke-width: 2px;\n}\n.button rect.busy {\n\tstroke: #fD1850;\n\tstroke-dasharray: 30 90;\n\tanimation: stroker 1s linear infinite;\n}\n.tabbox {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-flow: column;\n}\n.tabtitle {\n\tdisplay: flex;\n\tz-index: 1;\n\tjustify-content: center;\n}\n.tabtitle>div {\n\tcursor: pointer;\n\tpadding: 1px 10px 0 10px;\n\tborder-bottom: 3px solid transparent;\n\tfont-weight: bold;\n}\n.tabtitle>.this {\n\tcolor: #4f9da6;\n\tborder-bottom-color: #4EBBE4;\n}\n.tabbody {\n\tflex: 1;\n\tdisplay: flex;\n\tmargin-top: -1px;\n\tborder: 1px solid #A9A9A9;\n\theight: 0;\n}\n.tabbody>* {\n\tflex: 1;\n\tflex-flow: column;\n\tdisplay: none;\n}\n.tabbody>.this {\n\tdisplay: flex;\n}\n.tabbody>*>.titlebar{\n\tdisplay: flex;\n}\n.tabbody>*>.titlebar>*{\n\tflex: 1;\n\tmargin: 1px 1px 1px 1px;\n}\n.tabbody>*>.context {\n\tflex: 1;\n\tflex-flow: column;\n\tborder: 0;\n\tpadding: 5px;\n\toverflow-y: auto;\n}\n.tabbody>*>.inputbox{\n\tborder: 0;\n\tborder-bottom: #A9A9A9 solid 1px;\n\theight: 15px;\n\ttext-align:center;\n}\n.link>* {\n\tdisplay: flex;\n\tmargin: 5px;\n\tborder-bottom: 1px solid;\n\ttext-decoration: none;\n}\n#RuleList>label>* {\n\tbackground: #eee;\n\tpadding-left: 3px;\n\tmargin: 2px 0;\n\tcursor: pointer;\n}\n#RuleList input[type=radio] {\n\tdisplay: none;\n}\n#RuleList input[type=\"radio\"]:checked+* {\n\tbackground: #15cda8;\n}\n.isError {\n\tcolor: #FF0000;\n}\n#RuleJsonString{\nheight:600px\n}\nsvg text{\nfont-size:10px\n}","type":0}]