Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Экранирование спец символов для вставки в MySQL
-
Подскажите пожалуйста как экранировать спец символ обратная косая черта
как только не пробовал не выходит заменить надо через "выполнить код"Варианты которые пробовал:
[[R1]] = [[R1]].split(""'").join("\")
[[R1]] = [[R1]].split("'\'").join("\")
[[R1]] = [[R1]].split("''").join("\")
[[R1]] = [[R1]].split('').join("\")
[[R1]] = [[R1]].split("[]").join("\")[[R1]] = [[R1]].split("~").join("\~") [[R1]] = [[R1]].split("!").join("\!") [[R1]] = [[R1]].split("@").join("\@") [[R1]] = [[R1]].split("#").join("\#") [[R1]] = [[R1]].split("$").join("\$") [[R1]] = [[R1]].split("%").join("\%") [[R1]] = [[R1]].split("*").join("\*") [[R1]] = [[R1]].split("(").join("\(") [[R1]] = [[R1]].split(")").join("\)") [[R1]] = [[R1]].split("_").join("\_") [[R1]] = [[R1]].split("—").join("\—") [[R1]] = [[R1]].split("+").join("\+") [[R1]] = [[R1]].split("=").join("\=") [[R1]] = [[R1]].split("|").join("\|") [[R1]] = [[R1]].split(":").join("\:") [[R1]] = [[R1]].split(";").join("\;") [[R1]] = [[R1]].split("'").join("\'") [[R1]] = [[R1]].split("<").join("\<") [[R1]] = [[R1]].split(">").join("\>") [[R1]] = [[R1]].split("?").join("\?") [[R1]] = [[R1]].split("/").join("\/") [[R1]] = [[R1]].split("^").join("\^") [[R1]] = [[R1]].split("&").join("\&") [[R1]] = [[R1]].split("\"").join("''")Все остальное вроде заменяет.
Спасибо. -
@Fox Привет!
Подскажи пожалуйста при таком экранировании[[R1]] = [[R1]].replace(/([~!@#$%*()_—+=|:;'<>?\/^&])/g, "\/$1").replace(/"/g, "'");в базу MySQL вставляются данные пример: /(ПЕТРОВСКОГО/) а мне надо экранировать обратной косой чертой (), когда я пытаюсь поменять в твоем примере на обратную косую черту ругается на ошибку.
[[R1]] = [[R1]].replace(\([~!@#$%*()_—+=|:;'<>?\/^&])/g, "\/$1").replace(/"/g, "'");Задача чтобы в базе был чистый текст (ПЕТРОВСКОГО) без символов экранирования.
-
@mocard said in Экранирование спец символов для вставки в MySQL:
когда я пытаюсь поменять в твоем примере на обратную косую черту ругается на ошибку.
Это синтаксис js
replace(pattern, replacement), слешами выделяется регулярное выражение, которое необходимо применить к строкеtext.replace(/blue/g, "red");Символы для добавления слеша находятся в квадратных скобках
[~!@#$%*()_—+=|:;'<>?\/^&], для замены кавычек использется второй replace, соответственно для удаления слешей нужно добавить ещё один replace[[R1]] = [[R1]].replace(/([~!@#$%*()_—+=|:;'<>?\/^&])/g, "\/$1").replace(/"/g, "'").replace(/(\/)/g, ""); -
как вариант конвертировать в Base64 и записывать в базу, если контекстный поиск не нужен.
-
ну или так
https://qna.habr.com/q/1235258