Я определил следующий RegEx в файле util в приложении response / redux:
Это отлично работает и не вызывает сбоев при компиляции, если я объявляю его как строку:
export const REGEX_VALID_URL =
'^(https?://(www.)?)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$';
Однако, если я объявлю его как литерал регулярного выражения, например:
export const VALID_URL =
/^(https?://(www.)?)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$/;
Webpack не скомпилируется и показывает эту ошибку: Ошибка сборки модуля: SyntaxError: неожиданный токен (2:19)
1 | export const VALID_URL =
> 2 | /^(https?://(www.)?)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$/;
| ^
В чем проблема и как заставить webpack видеть этот RegEx как Aok?
Вы можете показать пример? Какие / с?
Что ж, поскольку вы используете / в качестве разделителя, вам нужно будет экранировать любое значение в регулярном выражении с помощью \ /^(https?://(www.)?)[a-z0-9pting+([- .] {1} [a-z0-9] +) *. [Az] {2,5} (: [0-9] {1,5})? (\ /.* )? $ /
Это решило это! Если хотите, отправьте ответ, и я помечу его как принятый, в противном случае я могу ответить самостоятельно. Спасибо!
вы также можете использовать new RegExp(REGEX_VALID_URL);
@ OlivierBoissé Существует потенциальное улучшение производительности при использовании литерала RegEx, и поэтому я выбрал его здесь. Раньше я использовал строки и новый синтаксис RegExp (REGEX), который также отлично работает.
@zero_cool Я никогда не откажусь от шанса, что мой ответ будет принят, лол
Поскольку вы используете / в качестве разделителя, вам нужно будет экранировать любое в регулярном выражении с помощью \
/^(https?://(www.)?)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$/
Должно быть все, что вам нужно.
Вам, вероятно, просто нужно убежать от вашего / s