Пользовательский ввод + Ruby + Regex? - PullRequest
7 голосов
/ 22 марта 2011

Я хочу предоставить пользователям текстовую область, где они могут вводить текст. Позже я сопоставлю этот вход с другим входом и извлеку его, если он совпадает.

Поток:

  • Пользователь вводит текст с возвратами в текстовую область
  • Текст сохраняется в БД в текстовом поле

Затем я использую следующее для извлечения:

text_reply = text_reply.sub(/#{user.text_to_extract}/m, '').strip

Проблема в том, что кажется, что символы, такие как новые линии или трубы | ломаем это. В качестве входных данных, с которыми мы хотим сопоставить, может выглядеть так:

XXXXXX

XXXXXX
XXXX & XXXXX
asdasd: 123312321 | dasasddsadasads

http://yahoo.com

Предложения? Thansk

1 Ответ

13 голосов
/ 22 марта 2011

Вам нужно экранировать ввод: http://www.ruby -doc.org / core / classes / Regexp.html

См. Метод escape.

 Regexp.escape(your_input)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...