Создание регулярного выражения JavaScript, эквивалентного регулярному выражению PHP

StackOverflow https://stackoverflow.com/questions/30121

  •  09-06-2019
  •  | 
  •  

Вопрос

После отправки моей веб-формы к пользовательскому вводу на стороне сервера будет применено регулярное выражение (через PHP).Я хотел бы, чтобы идентичное регулярное выражение работало в режиме реального времени на стороне клиента, чтобы показать пользователю, каким будет реальный ввод.Это будет почти то же самое, что и раздел «Предварительный просмотр» на страницах «Задать вопрос» в Stack Overflow, за исключением того, что на серверной стороне используется PHP вместо .NET.

Что мне нужно иметь в виду, чтобы мои регулярные выражения PHP и JavaScript действовали одинаково?

Это было полезно?

Решение

Хе-хе, об этом спрашивали несколько минут назад, и Джефф заметил:
http://www.regular-expressions.info/refflavors.html.

Проводится сравнение возможностей регулярных выражений в разных инструментах и ​​языках.

Другие советы

Если регулярные выражения просты, проблем не должно возникнуть, поскольку основы регулярных выражений являются общими для большинства реализаций.

Для подробностей было бы лучше изучить обе реализации:

http://www.regular-expressions.info/php.html

http://www.regular-expressions.info/javascript.html

Реализация Javascripts, вероятно, является более простой, поэтому, если вы ищете подход с наименьшим общим знаменателем, стремитесь к нему.

Я обнаружил, что разные реализации регулярных выражений часто имеют небольшие различия в том, что именно они поддерживают.Если вы хотите быть полностью уверены, что результат будет одинаковым как во внешнем, так и во внутреннем интерфейсе, самым безопасным вариантом будет сделать вызов Ajax к вашему серверу PHP и использовать один и тот же фрагмент PHP-кода для обеих оценок регулярных выражений.

@LKM AJAX здесь явный победитель.Это также позволит вам следить за СУХОЙ принцип.Почему вы хотите написать свой код синтаксического анализа на Javascript? и PHP?

И регулярное выражение JavaScript, и preg_match PHP основаны на Perl, поэтому проблем с переносом возникнуть не должно.Однако обратите внимание, что Javascript поддерживает только подмножество модификаторов, которые поддерживает Perl.

Для получения дополнительной информации для сравнения двух:

Что касается способа доставки, я бы посоветовал вам использовать JSON, самый тонкий формат обмена данными на сегодняшний день (AFAIK), который можно напрямую преобразовать в объект JavaScript с помощью eval().Просто пропусти этого плохого парня через АЯКС сеанс, и вы должны быть готовы к работе.

Надеюсь, это поможет :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top