На сайте есть регулярка на ввод номера телефона
echo' <div class="profile__input-row">
<input class="profile__input" type="text" id="User_PhoneNum" name="tel" value="'.$row_inf['t_numb'].'"/ required pattern=^\+?[\s\-\(\)0-9]{7,19}$ title="Enter the phone in the format +x(xxx)xx-xx-xx" >';
Но все равно можно вводить абсолютно любые цифры, в чем проблема?
Рискну предположить что проблема в том, что строку регулярного выражения следует взять в кавычки так как это атрибут html.
Дело в том, что наличие атрибута 'pattern' у input'а не запрещает ввод других символов, не подходящих под этот паттерн. Он срабатывает после нажатия кнопки типа Submit формы и в этом случае запускается проверка введенного значения на соответствие шаблону. Подробнее.
Если соответствия нет, то форма не отправится дальше. Кроме того, при потере фокуса с элемента ввода и нажатии обычных кнопок (type="button") валидация так же не сработает.
<form action="?" method="post">
<input type="text" name="phone" required="required" pattern="^\+?[\s\-\(\)0-9]{7,19}$"><br />
<input type="button" name="simple_button" value="Don't work"><br />
<input type="submit" name="submit" value="Work">
</form>
Если вы хотите динамически проверять вводимые символы, то необходимо использовать JavaScript на странице. Можно воспользоваться одной из готовых библиотек по заданию масок, например.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники