// ==UserScript==
// @name McbbsReviewServerHelperForUser
// @version 0.1.03
// @description MRSHFU - 你的服务器发帖好助手
// @author 萌萌哒丶九灬书
// @namespace https://space.bilibili.com/1501743
// @mainpage https://greasyfork.org/zh-CN/scripts/420651-mcbbsreviewserverhelperForUser/
// @supportURL https://greasyfork.org/zh-CN/scripts/420651-mcbbsreviewserverhelperForUser/feedback
// @home-url https://greasyfork.org/zh-TW/scripts/420651-mcbbsreviewserverhelperForUser/
// @homepageURL https://greasyfork.org/zh-TW/scripts/420651-mcbbsreviewserverhelperforuser
// @license GNU General Public License v3.0
// @create 2021-01-25
// @lastmodified 2023-07-29
// @note 0.1.03 更新: 1.修复了部分细节错误;
// @note 0.1.02 更新: 1.新增了新版版本号判定;
// @note 0.1.01 更新: 1.移除了旧版版本号判定;
// @note 0.1.00 更新: 1.发布了针对用户的版本;
// @note 新增、更改、修复、移除、精简、*可能*
// @match *://www.mcbbs.net/thread-*
// @match *://www.mcbbs.net/forum.php?mod=viewthread*
// @match *://www.mcbbs.net/forum-serverpending*
// @match *://www.mcbbs.net/forum.php?mod=forumdisplay&fid=296*
// @match *://www.mcbbs.net/forum-server*
// @match *://www.mcbbs.net/forum.php?mod=forumdisplay&fid=179*
// @match *://www.mcbbs.net/forum-362*
// @match *://www.mcbbs.net/forum.php?mod=forumdisplay&fid=362*
// @grant GM_xmlhttpRequest
// @grant GM_getResourceText
// @grant GM_getValue
// @grant GM_setValue
// @require https://cdn.staticfile.org/jquery/1.12.4/jquery.min.js
// @downloadURL https://update.greasyfork.icu/scripts/420651/McbbsReviewServerHelperForUser.user.js
// @updateURL https://update.greasyfork.icu/scripts/420651/McbbsReviewServerHelperForUser.meta.js
// ==/UserScript==
(function() {
'use strict';
var jq = jQuery.noConflict();
//jq名称重定义,避免冲突
function isThisTitleJudged(str){
//是否有判定标识
var ZZ1 = /(🍃|🍁|🍂|✅|❌|🔔)+/;
if(ZZ1.test(str)){
return true;
}else{
return false;
}
}
function ThreeDifferentTips(ele,str,info1,info2,info3){
//顾名思义,添加了三种不同的tips
if(ele > 0){
str.html(function(i,origText){
return '🍃' + origText + '🍃' + green(info1);
});
}else if(ele < 0) {
str.html(function(i,origText){
return '🍁' + origText + '🍁' + red(info2);
});
}else {
str.html(function(i,origText){
return '🍂' + origText + '🍂' + orange(info3);
});
};
}
function TrueOrFalsOrNull(ele,str,info2,info3){
//顾名思义,添加了通过、不通过、NULL三种不同的tips
if(ele > 0){
str.html(function(i,origText){
return '✅' + origText;
});
}else if(ele < 0) {
str.html(function(i,origText){
return '❌' + origText + '❌' + red(info2);
});
}else {
str.html(function(i,origText){
return '🔔' + origText + '🔔' + orange(info3);
});
};
}
function TrueOrFalse(ele,str,info2){
//顾名思义,添加了通过、不通过两种不同的tips
if(ele){
str.html(function(i,origText){
return '✅' + origText;
});
}else {
str.html(function(i,origText){
return '❌' + origText + '❌' + red(info2);
});
};
}
function OnlyFalse(ele,str,info2){
//顾名思义,只添加了不通过的tip
if(!ele){
str.html(function(i,origText){
return '❌' + red(info2) + origText;
});
};
}
function green(str){
//文本快捷变绿
if(str != ''){
return '' + str + '';
}else{
return '';
}
}
function red(str){
//文本快捷变红
if(str != ''){
return '' + str + '';
}else{
return '';
}
}
function orange(str){
//文本快捷变橘
if(str != ''){
return '' + str + '';
}else{
return '';
}
}
var flag_ReviewTitleZZ = true;
function ReviewTitleZZ(str){
//正则判断标题
//var ZZ = /^\[(电信|联通|移动|双线|多线|教育|港澳|台湾|欧洲|美洲|亚太|内网)\]([\u4e00-\u9fa5]|\w|\s|[\u0800-\u4e00])*(\s|)——(\s|).[^\[]*\[(\d|\.|X|x|\-)+]$/;
//var ZZ = /^\[(电信|联通|移动|双线|多线|教育|港澳|台湾|欧洲|美洲|亚太|内网)\]([0-9a-zA-Z\u2160-\u217f\u3040-\u30ff\u31f0-\u31ff\u4e00-\u9fa5]|\s)+——([^\u2014]|\s)+\[(\-?((1\.\d{1,2}(\.(\d{1,2}|X|x))?)|(\d{2}w\d{2}[a-z]))){1,2}\]$/;
/**
* 全角英文:\u2160-\u217f Ⅰ-ⅿ
* 日语:\u3040-\u30ff\u31f0-\u31ff -ヿㇰ-ㇿ
* 中文:\u4e00-\u9fa5 一-龥
* 破折号:\u2014 —
* 黑块:\u2588\u2589\u3013 █▉〓
* emoji:\uD83C\uDF00-\uDFFF\uD83D\uDC00-\uDE4F\uD83D\uDE80-\uDEFF\u2700-\u27BF\uFE0F 🌀-�🐀-�🚀-�✀-➿️
**/
var ZZ = /^\[(电信|联通|移动|双线|多线|教育|港澳|台湾|欧洲|美洲|亚太|内网)\]([0-9a-zA-Z\u2160-\u217f\u3040-\u30ff\u31f0-\u31ff\u4e00-\u9fa5]|\s)+——([^\u2014\u2588\u2589\u3013\uD83C\uDF00-\uDFFF\uD83D\uDC00-\uDE4F\uD83D\uDE80-\uDEFF\u2700-\u27BF\uFE0F]|(\s))+\[(\-?((1\.\d{1,2}(\.(\d{1,2}|X|x))?)|(\d{2}w\d{2}[a-z]))){1,2}\]$/;
if (ZZ.test(str)){
return true;
}else{
flag_ReviewTitleZZ = false;
return false;
}
}
function UserPointZZ(ele){
//正则判断数值是否为正(绿宝石&贡献)
var ZZ = /^[0-9]*\s/;
return ZZ.test(ele);
}
function trim(str){
//通过正则,清空字符串左右的空白
return str.replace(/(^\s*)|(\s*$)/g, "");
}
function ServerTitleName(str,SvrName){
var PoZheHao = str.indexOf("—");
//从左寻找 “—” 的位置
var YouKuoHao = str.indexOf("]");
//从左寻找 “]” 的位置
var subStr = String(str.substring(YouKuoHao + 1,PoZheHao));
//通过 “]” 和 “—” 定位服务器名称
subStr = trim(subStr);
SvrName = trim(SvrName);
//使用trim函数,清空字符串左右的空白
//console.log("sbS:" + subStr);
//console.log("SN:" + SvrName);
//用于debug输出↑
if (subStr == SvrName){
return 3;
}
else if (subStr + "服务器" == SvrName){
return 2;
}
else if (subStr == SvrName + "服务器"){
return 1;
}
else{
return 0;
};
}
var VersionList = ['1.20.1','1.20',
'1.19.4','1.19.3','1.19.2','1.19.1','1.19',
'1.18.2','1.18.1','1.18',
'1.17.1','1.17',
'1.16.5','1.16.4','1.16.3','1.16.2','1.16.1','1.16',
'1.15.2', '1.15.1', '1.15',
'1.14.4', '1.14',
'1.13.2', '1.13.1', '1.13',
'1.12.2', '1.12',
'1.11.2', '1.11',
'1.10.X',
'1.9.4', '1.9',
'1.8.X',
'1.7.10', '1.7.2',
'1.6.4'];
var VersionList_X = ['1.6.X', '1.7.X', '1.8.X', '1.9.X', '1.10.X', '1.11.X', '1.12.X', '1.13.X', '1.14.X', '1.15.X','1.16.X','1.17.X','1.18.X','1.19.X','1.20.X'];
var VersionList_x = ['1.6.x', '1.7.x', '1.8.x', '1.9.x', '1.10.x', '1.11.x', '1.12.x', '1.13.x', '1.14.x', '1.15.x','1.16.x','1.17.x','1.18.x','1.19.x','1.20.x'];
function ServerVersionXS(str){
//从VersionList调取.x的最大值,如果不是.x,传回原str
for(var i = 0; i < VersionList_X.length; i++){
if((str == VersionList_X[i])||(str == VersionList_x[i])){
break;
};
};
switch(i){
case 14:
//1.20.1
return VersionList[VersionList.length - 37];
case 13:
//1.19.4
return VersionList[VersionList.length - 35];
case 12:
//1.18.2
return VersionList[VersionList.length - 30];
case 11:
//1.17.1
return VersionList[VersionList.length - 27];
case 10:
//1.16.5
return VersionList[VersionList.length - 25];
case 9:
//1.15.2
return VersionList[VersionList.length - 19];
case 8:
//1.14.4
return VersionList[VersionList.length - 16];
case 7:
//1.13.2
return VersionList[VersionList.length - 14];
case 6:
//1.12.2
return VersionList[VersionList.length - 11];
case 5:
//1.11.2
return VersionList[VersionList.length - 9];
case 4:
//1.10.x
return VersionList[VersionList.length - 7];
case 3:
//1.9.4
return VersionList[VersionList.length - 6];
case 2:
//1.8.x
return VersionList[VersionList.length - 4];
case 1:
//1.7.10
return VersionList[VersionList.length - 3];
case 0:
//1.6.4
return VersionList[VersionList.length - 1];
default:
return str;
};
}
function ServerVersionXE(str){
//从VersionList调取.x的最小值,如果不是.x,传回原str
for(var i = 0; i < VersionList_X.length; i++){
if((str == VersionList_X[i])||(str == VersionList_x[i])){
break;
};
};
switch(i){
case 14:
//1.20
return VersionList[VersionList.length - 36];
case 13:
//1.19
return VersionList[VersionList.length - 31];
case 12:
//1.18
return VersionList[VersionList.length - 28];
case 11:
//1.17
return VersionList[VersionList.length - 26];
case 10:
//1.16
return VersionList[VersionList.length - 20];
case 9:
//1.15
return VersionList[VersionList.length - 17];
case 8:
//1.14
return VersionList[VersionList.length - 15];
case 7:
//1.13
return VersionList[VersionList.length - 12];
case 6:
//1.12
return VersionList[VersionList.length - 10];
case 5:
//1.11
return VersionList[VersionList.length - 8];
case 4:
//1.10.x
return VersionList[VersionList.length - 7];
case 3:
//1.9
return VersionList[VersionList.length - 5];
case 2:
//1.8.x
return VersionList[VersionList.length - 4];
case 1:
//1.7.2
return VersionList[VersionList.length - 2];
case 0:
//1.6.4
return VersionList[VersionList.length - 1];
default:
return str;
};
}
function SwitchLength(str1, str2){
for(var i = 0; i < str2.length; i++){
//在str2里遍历,直到找到str1位置
if(str1 == str2[i]){
return i;
};
};
}
function isServerVersionSelectTRUE(str1, str2, ServerVersion){
//ServerVersion为模板选择的版本号
var sv1_Diff = SwitchLength(ServerVersionXE(str1), VersionList) - SwitchLength(ServerVersionXS(str1), VersionList);
//sv1在VersionList的.x区间长度
var sv1_Diff2 = SwitchLength(ServerVersionXE(str1), ServerVersion) - SwitchLength(ServerVersionXS(str1), ServerVersion);
//sv1在模板的.x区间长度
if(str2 == null ){
if (sv1_Diff == sv1_Diff2){
return 1;
}else{
return -1;
}
}else{
var sv2_Diff = SwitchLength(ServerVersionXE(str2), VersionList) - SwitchLength(ServerVersionXS(str2), VersionList);
//sv2在VersionList的.x区间长度
var sv2_Diff2 = SwitchLength(ServerVersionXE(str2), ServerVersion) - SwitchLength(ServerVersionXS(str2), ServerVersion);
//sv2在模板的.x区间长度
if ((sv1_Diff == sv1_Diff2) && (sv2_Diff == sv2_Diff2)){
return 1;
}else{
return -1;
}
}
}
function ServerVersionTips(str1){
var str2 = jq(".cgtl.mbm tbody tr td").eq(2).text();
var ServerVersion = trim(str2)
ServerVersion = ServerVersion.split(/\s+/);
if (str1 > 0){
if (ServerVersion.length > 5){
ThreeDifferentTips(-1, jq(".cgtl.mbm tbody tr td").eq(2), "", "你确定有这么多核心?", "")
}else{
ThreeDifferentTips(1, jq(".cgtl.mbm tbody tr td").eq(2), "新版版规判定正确", "", "")
}
}else{
OnlyFalse(-1, jq(".cgtl.mbm tbody tr td").eq(2), "模板版本号与标题不符")
}
}
function getServerVersion(str1, str2){
var strL = str1.lastIndexOf("[");
var strR = str1.lastIndexOf("]");
var subStr = String(str1.substring(strL + 1,strR));
subStr = trim(subStr);
var ServerVersion = trim(str2)
ServerVersion = ServerVersion.split(/\s+/);
//ServerVersion为模板选择的核心版本号
var ZZ5 = /^1\.\d{1,2}(\.(\d{1,2}|X|x))?\-\d{2}w\d{2}[a-z]$/
//1.7.x-20w05a
var ZZ4 = /^\d{2}w\d{2}[a-z]$/;
//20w05a
var ZZ3 = /^1\.\d{1,2}(\.(\d{1,2}|X|x))?\-1\.\d{1,2}(\.(\d{1,2}|X|x))?$/;
//1.7.x-1.12.x
var ZZ2 = /^1\.\d{1,2}(\.\d{1,2})?$/;
//1.7.10
var ZZ1 = /^1\.\d{1,2}\.(X|x)$/;
//1.7.x
/*
console.log("sbS:" + subStr);
console.log("SvS:" + ServerVersion[0] + "; SvE:" + ServerVersion[ServerVersion.length - 1]);
console.log("SvL:" + ServerVersion.length);
console.log("VlS:" + VersionList[0] + "; VlE:" + VersionList[VersionList.length - 1]);
console.log("VlL:" + VersionList.length);
console.log(ZZ5.test(subStr));
console.log(ZZ4.test(subStr));
console.log(ZZ3.test(subStr));
console.log(ZZ2.test(subStr));
console.log(ZZ1.test(subStr));
↑调试用
*/
if(ZZ5.test(subStr) && ServerVersion[ServerVersion.length - 1] == '其他版本'){
/**
* 标题为 1.7.2-20w05a 且勾选了 其他版本 的情况
* 此为23年7月新版规规范
*/
var TitleVersion5 = subStr.split('-');
//TitleVersion为标题版本号
trim(TitleVersion5[0]);
trim(TitleVersion5[1]);
//避免有人在-的左右加空格
if(ZZ1.test(TitleVersion5[0])){
//如果标题版本号1为.x
if(isServerVersionSelectTRUE(TitleVersion5[0],null,ServerVersion)){
//如果.x勾选正确
return 5;
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}else{
//如果标题版本号1为.数字
if(TitleVersion5[0] == ServerVersion[ServerVersion.length - 2]){
//判定标题中 左侧的版本号 是否和 模板倒数第二个(倒数第一为其他版本) 相符合
return 5;
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}
}else if(ZZ4.test(subStr) && ServerVersion[ServerVersion.length - 1] == '其他版本'){
/**
* 标题为20w05a 且模板勾选了 其他版本 的情况
*/
if (ServerVersion.length > 1 ){
//模板选择多版本,标题选择单版本的情况 return -1
return -1;
}else{
//模板有且仅有一个'其他版本'时 return 4
return 4;
}
}else if(ZZ3.test(subStr)){
/**
* 标题为 1.7.x-1.12.x 多版本的情况
* 23年7月新版规
*/
var TitleVersion3 = subStr.split('-');
//TitleVersion为标题版本号
trim(TitleVersion3[0]);
trim(TitleVersion3[1]);
//避免有人在-的左右加空格
//console.log("TV1:" + TitleVersion3[0] + "; TV2:" + TitleVersion3[1]);
// ↑ 调试用 ↑
if(ZZ1.test(TitleVersion3[0]) && ZZ1.test(TitleVersion3[1])){
//如果标题版本号1和2均为.x
//console.log("tv1");
// ↑ 调试用 ↑
if(isServerVersionSelectTRUE(TitleVersion3[0], TitleVersion3[1], ServerVersion)){
//如果.x勾选正确
return 3;
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}else if(ZZ1.test(TitleVersion3[0])){
//如果标题版本号1为.x,标题版本号2为.2
//console.log("tv2");
// ↑ 调试用 ↑
if(isServerVersionSelectTRUE(TitleVersion3[0], null, ServerVersion) && (TitleVersion3[1] == ServerVersion[0])){
//标题版本号1勾选正确,标题版本号2是否为模板版本号第一个
return 3;
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}else if(ZZ1.test(TitleVersion3[1])){
//如果标题版本号1为.2,标题版本号2为.x
//console.log("tv3");
// ↑ 调试用 ↑
if((TitleVersion3[0] == ServerVersion[ServerVersion.length - 1]) && isServerVersionSelectTRUE(TitleVersion3[1], null, ServerVersion)){
//标题版本号1是否为模板版本号倒数第一个, 标题版本号2勾选正确
return 3;
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}else{
//console.log("tv4");
// ↑ 调试用 ↑
//如果标题版本号1和2均为.2
if((TitleVersion3[0] == ServerVersion[ServerVersion.length - 1]) && (TitleVersion3[1] == ServerVersion[0])){
//标题版本号1是否为模板版本号倒数第一个,标题版本号2是否为模板版本号第一个
return 3;
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}
}else if(ZZ2.test(subStr)){
/**
* 标题为 1.7.2 单版本的情况
*/
var TitleVersion2 = trim(subStr);
if (ServerVersion.length > 1 ){
//模板选择多版本,标题选择单版本的情况 return -1
return -1;
}
if ((TitleVersion2 == ServerVersion[0]) || ((TitleVersion2 != ServerVersion[0]) && (ServerVersion[ServerVersion.length - 1] == '其他版本'))){
//判定标题中的版本号是否和模板相符合 || 不符合的时候 是否选择了其他版本
return 2;
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}else if(ZZ1.test(subStr)){
/**
* 标题为 1.7.x 复合版本的情况, 23年7月新版规
*/
var TitleVersion1 = trim(subStr);
if(ZZ1.test(TitleVersion1)){
//如果标题版本号1为.x
if(isServerVersionSelectTRUE(TitleVersion1,null,ServerVersion)){
//如果.x勾选正确
return 1;
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}else{
//如果标题版本号1为.数字
if(TitleVersion1 == ServerVersion[0]){
//判定标题中 左侧的版本号 是否和 模板第一个 相符合
return 1;
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}
}else{
//标题中的版本号和模板不符 就直接return -3
return -3;
};
}
function ServerIPAddress(str){
var SvrIPAddress = trim(str);
var ZZ3 = /((\w)+\.)+(\w)+(\:[0-9]+)?/;
//正则匹配带端口或不带端口的域名地址
var ZZ2 = /((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/;
//正则匹配不带端口的IP地址
var ZZ1 = /([\u4e00-\u9fa5]|\w|\s|[\u0800-\u4e00])+/;
//正则匹配至少输入了点东西的
if(ZZ3.test(SvrIPAddress)){
return 3;
}else if(ZZ2.test(SvrIPAddress)){
return 2;
}else if(ZZ1.test(SvrIPAddress)){
return 1;
}else{
return 0;
};
}
function ServerType(str){
var strR = str.indexOf("»");
//从左寻找 “»” 的位置
var subStr = String(str.substring(0,strR));
//从开头到 “»” 定位服务器类型
subStr = trim(subStr);
//console.log(subStr);
if(subStr == "纯净服务器"){
return 1;
} else if(subStr == "Mod服务器"){
return -1;
} else if(subStr == "其他(下面注明)"){
return 0;
};
}
function ServerClientDownloadSet(str){
var strL = str.indexOf("»");
//从左寻找 “»” 的位置
var strR = str.indexOf("下");
//从左寻找 “下” 的位置
var subStr = String(str.substring(strL + 1,strR));
//通过 “»” 和 “下” 定位服务器是否需要下载专用客户端
subStr = trim(subStr);
if(subStr == "不需要"){
//忽视内容,返回99
return 99;
} else if(subStr == "需要"){
return -1;
} else if(subStr == ""){
return 0;
};
}
function ServerClientDownload(str){
var SvrCD = trim(str);
var ZZ1 = /((\w)+\.)+(\w)+(\:[0-9]+)?/;
var ZZ_1 = /^http(s)?\:\/\/(www.)?([\u4e00-\u9fa5]|\s|[\u0800-\u4e00]|)+(\w)*([0-9]+)*.com$/;
var ZZ_2 = /jq\.qq\.com/;
var ZZ_3 = /(群|君羊|裙)+/;
var ZZ_4 = /mcbbs\.net/
if(ZZ_4.test(SvrCD)){
return -4;
}else if(ZZ_3.test(SvrCD)){
return -3;
}else if(ZZ_2.test(SvrCD)){
return -2;
}else if(ZZ_1.test(SvrCD)){
return -1;
}else if(ZZ1.test(SvrCD)){
return 1;
}else {
return 0;
};
}
var flag_SeverBusinessConditionsWrite = false;
//是否正确填写,正确填写为true,填写错误为false
var flag_SeverBusinessConditionsValue = false;
//是否为公益服,公益服为true,商业服为false
function SeverBusinessConditions(str1,str2){
var strR = str1.indexOf("服");
//从左寻找 “服” 的位置
var subStr = String(str1.substring(0,strR));
//从头开始,通过 “服” 定位服务器是否公益
var ZZ1 = /本服是公益服并且愿意承担虚假宣传的一切后果/;
if(subStr == "公益"){
if(ZZ1.test(str2)){
//如果是公益服,且写明了标语,则返回中立
flag_SeverBusinessConditionsValue = true;
flag_SeverBusinessConditionsWrite = true;
return 0;
} else {
//如果是公益服,没写明标语,则返回false
flag_SeverBusinessConditionsValue = true;
flag_SeverBusinessConditionsWrite = false;
return -1;
};
} else if (subStr == "商业"){
if(ZZ1.test(str2)){
//如果是商业服,却写了标语,则返回false
flag_SeverBusinessConditionsValue = false;
flag_SeverBusinessConditionsWrite = false;
return -1;
} else {
//如果是商业服,没写明标语,则返回true(unlimited)
flag_SeverBusinessConditionsValue = false;
flag_SeverBusinessConditionsWrite = true;
return 99;
};
} else{
//其他情况,返回false,提醒审核
flag_SeverBusinessConditionsValue = false;
flag_SeverBusinessConditionsWrite = false;
return -1;
};
}
function isAllEqual(array){
//输入一个值,或是一个数组,判定其是否所有数值都相等;
return array.every(function(value,i){
return value == 1;
});
}
function JudgeSameColor(str1,str2){
//输入color1和color2,判定两个值是否在某个误差内
var Dvalue = 15;
var check = [];
var str1L = str1.indexOf("(");
var str1R = str1.indexOf(")");
var subStr1 = String(str1.substring(str1L + 1,str1R));
var Color1 = subStr1.split(', ');
var str2L = str2.indexOf("(");
var str2R = str2.indexOf(")");
var subStr2 = String(str2.substring(str2L + 1,str2R));
var Color2 = subStr2.split(', ');
for(var i_1 = 0; i_1 < Color1.length; i_1++){
if(Math.abs(Color1[i_1] - Color2[i_1]) <= Dvalue){
check[i_1] = 1;
}else{
check[i_1] = 0;
};
};
return isAllEqual(check);
}
var flag_BodyTextSize = true;
var flag_BodyTextColor = true;
var flag_BodyTextBGColor = true;
var flag_BodyTextGGL = true;
//设置全局变量 字体大小, 字体颜色, 背景颜色, 刮刮乐
function BodyFont_Size_Color(str){
var str_ZZ1 = /font\scolor/;
var str_ZZ2 = /^
$/;
var str_ZZ3 = /^\s+$/;
var str_ZZ4 = /^\s$/;
if (str_ZZ1.test(String(str.html()))){
//如果内容中还包含‘font color’,跳出判断。
//console.log('text: ' + str.text());
//console.log('color: ' + cssFontColor);
//console.log('flag_HTML: ' + String(str.html()));
return true;
}else if(str_ZZ2.test(str.html()) && trim(str.find("*").children().text()) == ''){
//如果内容中只有‘
’且无其他内容时,跳出判断。
//console.log('1_text: ' + str.text());
//console.log('1_color: ' + cssFontColor);
//console.log('1_flag_HTML: ' + String(str.html()));
return true;
}
/* 旧版判断 if(trim(str.text()) == '' || trim(str.find("*").children().text()) != '' ) //如果内容为空,或依旧有内容时,直接返回true,即跳出判断; */
var color = ['rgb(0, 255, 255)','rgb(255, 255, 0)','rgb(0, 255, 0)','rgb(36, 255, 36)','rgb(255, 0, 255)']
var color_RGBA = ['rgba(0, 255, 255, 0)','rgba(255, 255, 0, 0)','rgba(0, 255, 0, 0)','rgba(36, 255, 36, 0)','rgba(255, 0, 255, 0)']
//按顺序,分别为亮青色, 亮黄色, 亮绿色, 亮绿色, 亮粉色
var flag_FontSize = true;
var cssFontSize = str.css('font-size');
//找到font-size的css,并提取
var px = cssFontSize.indexOf('px');
//找到px字符的位置
var FontSize=cssFontSize.substring(0,px);
//将px切割,保留数字字符
if(parseInt(FontSize) > 24){
//将string转换为int型,并判断
flag_BodyTextSize = false;
flag_FontSize = false;
}
var flag_FontColor = true;
var cssFontColor = str.css('color');
//var cssFontColor = str.getElementById('color').style.color;
//找到color的css,并提取
for (var i_color = 0; i_color < color.length; i_color++){
if((JudgeSameColor(cssFontColor, color[i_color]) || JudgeSameColor(cssFontColor, color_RGBA[i_color])) && cssFontColor !='' && !str_ZZ3.test(str.text())){
//判定RGB | RGBA | 是否为空 | 内容是否为多个空格
console.log('2_text: ' + str.text());
console.log('2_color: ' + cssFontColor);
console.log('2_flag_HTML: ' + String(str.html()));
console.log('2_color['+ i_color +']: ' + color[i_color] + 'RGBA['+ i_color +']: ' + color_RGBA[i_color]);
console.log(str_ZZ3.test(str.text()));
/* 调试用 暂时不删 ↑*/
flag_BodyTextColor = false;
flag_FontColor = false;
break;
}
}
var flag_FontBGColor = true;
var cssFontBGColor = str.css("background-color");
//var cssFontBGColor = str.getElementById('color').style.backgroundColor;
//找到color的css,并提取
for (var i_BGColor = 0; i_BGColor < color_RGBA.length; i_BGColor++){
if((JudgeSameColor(cssFontBGColor, color[i_BGColor]) || JudgeSameColor(cssFontBGColor, color_RGBA[i_BGColor])) && cssFontBGColor !='' && !str_ZZ4.test(str.text())){
console.log('3_text: ' + str.text());
console.log('3_BGcolor: ' + cssFontBGColor);
console.log('3_flag_HTML: ' + String(str.html()));
console.log('3_BGcolor['+ i_BGColor +']: ' + color[i_BGColor] + 'RGBA['+ i_BGColor +']: ' + color_RGBA[i_BGColor]);
/* 调试用 暂时不删 ↑*/
flag_BodyTextBGColor = false;
flag_FontBGColor = false;
break;
}
}
var flag_FontGGL = true;
if (JudgeSameColor(cssFontBGColor, cssFontColor) && (cssFontBGColor != '' || cssFontColor != '') && !str_ZZ4.test(str.text())){
console.log('4_text: ' + str.text());
console.log('4_BGcolor: ' + cssFontBGColor);
console.log('4_flag_HTML: ' + String(str.html()));
console.log('4_BGcolor['+ i_BGColor +']: ' + color[i_BGColor] + 'RGBA['+ i_BGColor +']: ' + color_RGBA[i_BGColor]);
/* 调试用 暂时不删 ↑*/
flag_BodyTextGGL = false;
flag_FontGGL = false;
}
return flag_FontSize && flag_FontColor && flag_FontBGColor && flag_FontGGL;
}
function BodyFontFlag(){
//用于输出是否违规的tips
var TipText = '';
if(flag_BodyTextSize == false){
TipText = TipText + red('❌字号大于5');
}else{
TipText = TipText + green('✅字号合规');
};
if(flag_BodyTextColor == false){
TipText = TipText + '|' + red('❌亮色字体');
}else{
TipText = TipText + '|' + green('✅亮色字体');
};
if(flag_BodyTextBGColor == false){
TipText = TipText + '|' + red('❌亮色背景');
}else{
TipText = TipText + '|' + green('✅亮色背景');
};
if(flag_BodyTextGGL == false){
TipText = TipText + '|' + red('❌妨碍阅读的字体/背景');
}else{
TipText = TipText + '|' + green('✅其他颜色违规');
};
jq('.t_f').html(function(i,origText){
return '