2024-03-31 23:50:24 +00:00
|
|
|
// https://manual.manticoresearch.com/Searching/Full_text_matching/Escaping#Escaping-characters-in-query-string
|
|
|
|
export default function escape(string) {
|
|
|
|
if (!string) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2025-02-09 22:58:29 +00:00
|
|
|
const replaced = string
|
2024-03-31 23:50:24 +00:00
|
|
|
.replace(/\\/g, String.raw`\\\\`) // using String.raw so we don't have to double up JS and SQL escaping
|
|
|
|
.replace(/'/g, String.raw`\'`)
|
2025-02-09 22:58:29 +00:00
|
|
|
.replace(/(["?!$()/<@^|~-])/g, String.raw`\\$1`);
|
|
|
|
|
|
|
|
return replaced;
|
2024-03-31 23:50:24 +00:00
|
|
|
}
|