Str :: is функция в laravel Как передать регулярное выражение - PullRequest
0 голосов
/ 17 апреля 2019

Когда я использую это для проверки строки «admin / customer / person / 1» в регулярном admin/customer/person/[0-9]+, программа сообщает мне, что регулярное выражение является правильным.

Но когда я использую Str::is("admin/customer/person/[0-9]+", "admin/customer/person/1") эта функция, результат неправильный.

То же самое имеет следующее

Str::is("admin/customer/person/([0-9]+)/edit", "admin/customer/person/1/edit");//result is false
Str::is("admin/customer/person/[0-9]+", "admin/customer/person/1");//false
Str::is("admin/customer/person/([0-9]+)", "admin/customer/person/1");//false
Str::is("admin/customer/person/\[0-9]+\\", "admin/customer/person/1");//false

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

is метод не будет соответствовать традиционным регулярным выражениям:

Str::is('[0-9]', '1');
// false
0 голосов
/ 17 апреля 2019

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

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