171 lines
10 KiB
JavaScript
171 lines
10 KiB
JavaScript
//不参与编译的JS相关数据
|
||
//JsCodeJSonCompilerStr-存所有编译时产生的临时数据,该变量中的临时数据将不会参与到JS编译!
|
||
//JSCode-代表编译的代码
|
||
//IfType-代表类型【1是开头,2是结束】
|
||
//ifCompiler-是否编译,真代表是
|
||
//FileID - 文件ID,可以是空字符串
|
||
function NoStrCompiler(JsCodeJSonCompilerStr, JSCode, IfType, ifCompiler = false, FileID) {
|
||
return NoStrCompiler_StrComNo(JsCodeJSonCompilerStr, JSCode, IfType, ifCompiler, FileID)
|
||
}
|
||
|
||
//不参与编译的JS相关数据-字符串不参与编译
|
||
//JsCodeJSonCompilerStr-存所有编译时产生的临时数据,该变量中的临时数据将不会参与到JS编译!
|
||
//JSCode-代表编译的代码
|
||
//IfType-代表类型【1是开头,2是结束】
|
||
//ifCompiler-是否编译,真代表是
|
||
//FileID - 文件ID,可以是空字符串
|
||
function NoStrCompiler_StrComNo(JsCodeJSonCompilerStr, JSCode, IfType, ifCompiler = false, FileID) {
|
||
if (IfType == 1) {
|
||
JSCode = JSCode.replaceAll("image/*", "NoCompilerJsCode0" + CompilerStart)
|
||
JSCode = JSCode.replaceAll("<script", "NoCompilerJsCode1" + CompilerStart)
|
||
JSCode = JSCode.replaceAll("</script", "NoCompilerJsCode2" + CompilerStart)
|
||
JSCode = JSCode.replaceAll("<脚本", "NoCompilerJsCode3" + CompilerStart)
|
||
JSCode = JSCode.replaceAll("</脚本", "NoCompilerJsCode4" + CompilerStart)
|
||
JSCode = JSCode.replaceAll("/*", ComXingHaoFOFStuDioText1)
|
||
JSCode = JSCode.replaceAll("*/", ComXingHaoFOFStuDioText2)
|
||
let StringObj = TakeTheMiddleOfTheTextAll(JSCode, "kkcosxinghaojstihuan", "fanxinghaokkcosjstihuan");
|
||
if (StringObj != undefined && StringObj != null) {
|
||
if (StringObj.length >= 1) {
|
||
for (let index = 0; index < StringObj.length; index++) {
|
||
let StrCodeLs = [StrCodeUuid(StringObj[index]), StringObj[index], false]
|
||
JSCode = JSCode.replace(StringObj[index], StrCodeLs[0])
|
||
JsCodeJSonCompilerStr[JsCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
StringObj = TakeTheMiddleOfTheTextAll(JSCode, ComXingHaoFOFStuDioText1, ComXingHaoFOFStuDioText2);
|
||
if (StringObj != undefined && StringObj != null) {
|
||
if (StringObj.length >= 1) {
|
||
for (let index = 0; index < StringObj.length; index++) {
|
||
let StrCodeLs = [StrCodeUuid(StringObj[index]), StringObj[index], false]
|
||
JSCode = JSCode.replace(StringObj[index], StrCodeLs[0])
|
||
JsCodeJSonCompilerStr[JsCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
let dataJSCode = FOFStudioType.replaceStringsInCode(JSCode);
|
||
JSCode = dataJSCode["JSCode"];
|
||
let JsCodeJSonCompilerStrData = dataJSCode["JsCodeJSonCompilerStr"];
|
||
for (let index = 0; index < JsCodeJSonCompilerStrData.length; index++) {
|
||
JsCodeJSonCompilerStr[JsCodeJSonCompilerStr.length] = JsCodeJSonCompilerStrData[index];
|
||
}
|
||
/*全局关键字防止失误编译*/
|
||
let GArrCodeLs = GlobalCommandsDoNotCompile(JSCode)
|
||
for (let index = 0; index < GArrCodeLs.length; index++) {
|
||
let StrCode = GArrCodeLs[index];
|
||
let StrCodeLs = [StrCodeUuid(StrCode), StrCode, true]//实行全部替换机制
|
||
JSCode = JSCode.replaceAll(StrCode, StrCodeLs[0])
|
||
JsCodeJSonCompilerStr[JsCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
if (IfType == 2) {
|
||
for (let index = 0; index < JsCodeJSonCompilerStr.length; index++) {
|
||
let StrCodeLs = JsCodeJSonCompilerStr[JsCodeJSonCompilerStr.length - index - 1]//1代表双引号
|
||
if (StrCodeLs[2] == true) {
|
||
JSCode = JSCode.replaceAll(StrCodeLs[0], StrCodeLs[1])
|
||
} else {
|
||
JSCode = JSCode.replace(StrCodeLs[0], StrCodeLs[1])
|
||
}
|
||
}
|
||
JSCode = JSCode.replaceAll("NoCompilerJsCode0" + CompilerStart, "image/*")
|
||
JSCode = JSCode.replaceAll("NoCompilerJsCode1" + CompilerStart, "<script")
|
||
JSCode = JSCode.replaceAll("NoCompilerJsCode2" + CompilerStart, "</script")
|
||
JSCode = JSCode.replaceAll("NoCompilerJsCode3" + CompilerStart, "<脚本")
|
||
JSCode = JSCode.replaceAll("NoCompilerJsCode4" + CompilerStart, "</脚本")
|
||
JSCode = JSCode.replaceAll(ComXingHaoFOFStuDioText1, "/*")
|
||
JSCode = JSCode.replaceAll(ComXingHaoFOFStuDioText2, "*/")
|
||
}
|
||
return { "code": JSCode, "JsCodeJSonCompilerStr": JsCodeJSonCompilerStr };
|
||
}
|
||
|
||
//编译被NoStrCompiler定性为不需要编译但实际需要编译的内容
|
||
//参数1要编译的页面代码,参数2编译的类型
|
||
//1代表编译成本地语言,2代表编译成英文
|
||
//【注意:本地语言,例如中文、柬埔寨或者其他国家语言以正则为主,目前暂时支持中文】
|
||
function YesStrCompiler(JSCode, CodeType) {
|
||
let pattern2 = /([`])(?:(?=(\\?))\2.)*?\1/gs;
|
||
let StringObj = JSCode.match(pattern2);
|
||
if (StringObj != undefined && StringObj != null) {
|
||
if (StringObj.length >= 1) {
|
||
for (let index = 0; index < StringObj.length; index++) {
|
||
if (StringObj[index].includes("<") && StringObj[index].includes(">"))
|
||
{
|
||
let StrCodeLs = [StringObj[index], StringObj[index]]
|
||
StrCodeLs[1] = CodeCompilerHtmlAll(StrCodeLs[1], CodeType, 1)
|
||
JSCode = JSCode.replaceHack(StrCodeLs[0], StrCodeLs[1])
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return JSCode;
|
||
}
|
||
|
||
//全局命令中不参与编译的语法,例如:对象{ }
|
||
function GlobalCommandsDoNotCompile(JSCode) {
|
||
let GArrCodeLs = []
|
||
for (let index = 0; index < JavascriptOverallCode.length; index++) {
|
||
let ifGArrCodeLsAdd = false;
|
||
let ArrCodeLs = []
|
||
ArrCodeLs[ArrCodeLs.length] = "{" + JavascriptOverallCode[index]["T_title"] + ":"
|
||
ArrCodeLs[ArrCodeLs.length] = " " + JavascriptOverallCode[index]["T_title"] + ":"
|
||
ArrCodeLs[ArrCodeLs.length] = " " + JavascriptOverallCode[index]["T_title"] + " :"
|
||
ArrCodeLs[ArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title"] + ":"
|
||
ArrCodeLs[ArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title"] + ":"
|
||
ArrCodeLs[ArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title"] + " :"
|
||
|
||
ArrCodeLs[ArrCodeLs.length] = "{" + JavascriptOverallCode[index]["T_title_en"] + ":"
|
||
ArrCodeLs[ArrCodeLs.length] = " " + JavascriptOverallCode[index]["T_title_en"] + ":"
|
||
ArrCodeLs[ArrCodeLs.length] = " " + JavascriptOverallCode[index]["T_title_en"] + " :"
|
||
ArrCodeLs[ArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title_en"] + ":"
|
||
ArrCodeLs[ArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title_en"] + ":"
|
||
ArrCodeLs[ArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title_en"] + " :"
|
||
for (let index2 = 0; index2 < ArrCodeLs.length; index2++) {
|
||
if (JSCode.includes(ArrCodeLs[index2])) {
|
||
let reg = new RegExp("(?=[^0-9a-zA-Z\u4e00-\u9fa5_])[^0-9a-zA-Z\u4e00-\u9fa5_]" + ArrCodeLs[index2] + "(?=[^0-9a-zA-Z\u4e00-\u9fa5_])", "g");
|
||
if (reg.test(JSCode) == true) {
|
||
ifGArrCodeLsAdd = true
|
||
}
|
||
}
|
||
if (ifGArrCodeLsAdd == true) {
|
||
if (GArrCodeLs.includes("{" + JavascriptOverallCode[index]["T_title"] + ":") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = "{" + JavascriptOverallCode[index]["T_title"] + ":"
|
||
}
|
||
if (GArrCodeLs.includes(" " + JavascriptOverallCode[index]["T_title"] + ":") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = " " + JavascriptOverallCode[index]["T_title"] + ":"
|
||
}
|
||
if (GArrCodeLs.includes(" " + JavascriptOverallCode[index]["T_title"] + " :") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = " " + JavascriptOverallCode[index]["T_title"] + " :"
|
||
}
|
||
if (GArrCodeLs.includes("," + JavascriptOverallCode[index]["T_title"] + ":") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title"] + ":"
|
||
}
|
||
if (GArrCodeLs.includes("," + JavascriptOverallCode[index]["T_title"] + ":") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title"] + ":"
|
||
}
|
||
if (GArrCodeLs.includes("," + JavascriptOverallCode[index]["T_title"] + " :") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title"] + " :"
|
||
}
|
||
if (GArrCodeLs.includes("{" + JavascriptOverallCode[index]["T_title_en"] + ":") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = "{" + JavascriptOverallCode[index]["T_title_en"] + ":"
|
||
}
|
||
if (GArrCodeLs.includes(" " + JavascriptOverallCode[index]["T_title_en"] + ":") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = " " + JavascriptOverallCode[index]["T_title_en"] + ":"
|
||
}
|
||
if (GArrCodeLs.includes(" " + JavascriptOverallCode[index]["T_title_en"] + " :") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = " " + JavascriptOverallCode[index]["T_title_en"] + " :"
|
||
}
|
||
if (GArrCodeLs.includes("," + JavascriptOverallCode[index]["T_title_en"] + ":") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title_en"] + ":"
|
||
}
|
||
if (GArrCodeLs.includes("," + JavascriptOverallCode[index]["T_title_en"] + ":") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title_en"] + ":"
|
||
}
|
||
if (GArrCodeLs.includes("," + JavascriptOverallCode[index]["T_title_en"] + " :") == false) {
|
||
GArrCodeLs[GArrCodeLs.length] = "," + JavascriptOverallCode[index]["T_title_en"] + " :"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return GArrCodeLs;
|
||
}
|