Какие виды regex поддерживаются браузерами?

200
19 июня 2017, 22:16

Я столкнулся с тем, что regex в браузере отрабатывает не совсем так как в c# php и других средах. Вопрос, все ли регулярные выражения работают в браузерах? Те которые работают без вопросов (не все, те которые чуть сложнее): ?? +? *? {...}? [^..] отработали хорошо.

Приведу те, которые вызвали вопросы

  1. Утверждения ?<= ?<! (получаю syntax error)
  2. Условные ?(число) ?(число)| ?(условие) ?(условие)| (не вижу захвата, работает /(12)(?(1)3)/ как не распознало выражение - ничего не захватывает).

Справку по regex брал тут. По-поводу версионности regex не удалось найти информацию. Всётаки, в какой степени браузеры поддерживают regex? Что можно использовать, а что нельзя?

Answer 1

Это не к браузерам, это к стандартам на JavaScript. Как вы правильно заметили, в JS нет привычных назад смотрящих выражений вида ?<=. Так и нет многострочного режима. Нет определений для блоков Уникода. Из важного.

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

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

READ ALSO
Выполнить безопасный запрос с помощью PDO

Выполнить безопасный запрос с помощью PDO

// Как выполнить данный запрос максимально безопасно и просто с помощью PDO

196
Ошибка с PHPMailer

Ошибка с PHPMailer

ЗдравствуйтеПроблема такая: отправляю письма в html формате c помощью phpmailer, а мне на экран выводится кучу разное информации об отправлении,...

222
api rest яндекс диск создать папку

api rest яндекс диск создать папку

пытаюсь создать паку на диске в результате получаю такую ошибку помогите исправить {"message":"Метод не поддерживается","description":"Method Not Allowed","error":"MethodNotAllowedError"}...

428