Я пытаюсь написать метод, аналогичный mysqli_real_escape_string
в PHP.Он принимает строку и экранирует любые «опасные» символы.Я искал метод, который сделает это для меня, но я не могу найти один.Поэтому я пытаюсь написать один самостоятельно.
Это то, что у меня есть до сих пор (я тестировал шаблон на Rubular.com , и он работал):
# Finds the following characters and escapes them by preceding them with a backslash. Characters: ' " . * / \ -
def escape_characters_in_string(string)
pattern = %r{ (\'|\"|\.|\*|\/|\-|\\) }
string.gsub(pattern, '\\\0') # <-- Trying to take the currently found match and add a \ before it I have no idea how to do that).
end
И я использую start_string
как строку, которую я хочу изменить, и correct_string
как то, что я хочу start_string
, чтобы превратить в:
start_string = %("My" 'name' *is* -john- .doe. /ok?/ C:\\Drive)
correct_string = %(\"My\" \'name\' \*is\* \-john\- \.doe\. \/ok?\/ C:\\\\Drive)
Может кто-нибудь попытаться помочь мне определить, почемуЯ не получаю желаемый результат (correct_string
) или скажите мне, где я могу найти метод, который делает это, или даже лучше, скажите мне оба?Большое спасибо!