@upup73571 here is how to do it correctly. project.xml
Экранирование спец символов для вставки в 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