Не работает regexp


#1

Доброго дня.

Подскажите почему в кастомном файле схемы (/usr/share/wb-mqtt-confed/schemas) не получается использовать такой шаблон - файл конфига просто не появляется в интерфейсе:

^+[0-9]{11}$

Стоит убрать из выражения плюс и слеш перед ним - файл начинает отображаться и поле корректно обрабатывает ввод, но хотелось бы понять почему с плюсом не получается.
Проверял на валидаторе regexp, вроде все ок


#2

Регулярка неправильная. + - это 1 или более символов, которые у вас не заданы. Если вам просто плюс нужен - добавьте слэш перед ним.


#3

В схему я вставляю именно со слешем. Наверное парсер форума съел. Еще раз повторно проверю - вставляю в таком виде:
^\+[0-9]{11}$


#4

разобрался - надо было двойной слеш перед плюсом ставить. в таком виде все работает:

“pattern”: “^\\+[0-9]{11}$”,

но это странно, валидатор regexp такого не требует
теперь интересно в каких случаях в шаблонах еще будут нужны двойные слеши…


#5

Регулярки имеют небольшие различия в разных языках, но в вашем случае видимо сам \ необходимо экранировать.


#6

Да, тоже как раз хотел предложить использовать двойной слэш. Он нужен, скорее всего, из-за того, что яваскриптовый regex объект генерится из строки.