Создание регулярного выражения JavaScript, эквивалентного регулярному выражению PHP - PullRequest
9 голосов
/ 27 августа 2008

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

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

Ответы [ 5 ]

10 голосов
/ 27 августа 2008

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

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

3 голосов
/ 27 августа 2008

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

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

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

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

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

1 голос
/ 27 августа 2008

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

1 голос
/ 27 августа 2008

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

0 голосов
/ 27 августа 2008

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

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

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

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

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