Как проверить правильность регулярного выражения в JavaScript, используя правила Ruby? - PullRequest
2 голосов
/ 19 января 2012

В моей базе данных есть несколько регулярных выражений, которые затем создаются в Ruby с помощью чего-то вроде:

rx = Regexp.new(rx_string)

Я хочу проверить правильность регулярного выражения прямо из формы, которая отправляет его на мой сервер Rails, используяJavaScript, чтобы отображать красную рамку, чтобы при отправке и последующем использовании он не вызывал исключение в Ruby.

Существует ли простой способ передать определение движка регулярных выражений Ruby сценарию JavaScript, который будетпридумать истину или ложь о том, действительно ли регулярное выражение в Ruby?

Ответы [ 2 ]

3 голосов
/ 19 января 2012

Различия между синтаксисом регулярных выражений Ruby и JavaScript можно найти здесь: Различия между Ruby 1.9 и регулярным выражением Javascript

Я предлагаю взять входную строку, удалить все функции Ruby (например, (?#comments...)) и проверить, является ли это допустимым регулярным выражением в JavaScript:

try {
  RegExp(input); valid = true;
} catch(e) {
  valid = false;
}

Удаление всех функций Ruby из входной строки будет хитрым битом.

Я не могу придумать более легкого пути, не имея под рукой сверхдлинного ruby-regex-validating-regexp.

1 голос
/ 19 января 2012

Нет, это невозможно (в пределах одного регулярного выражения), так как вы можете написать в своем шаблоне почти все и его действительные значения, и вы можете вкладывать свои выражения так, как вам нравится.

Конечно, это было бы возможнонаписать синтаксический анализатор, который анализирует регулярное выражение, но я совершенно уверен, что вы не хотите этого делать.

Подобный вопрос был задан здесь: регулярное выражение, которое соответствует действительным регулярным выражениям , гдеОтвет пришел от автора RegexBuddy .

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