Выражение для маски (заполнителя):
^\(_{3}\)_{3}-_{4}$
Выражение для действительного номера телефона:
^\(\d{3}\)\d{3}-\d{4}$
Маска использует _
вместо цифр, поэтому вам нужно будет использовать [\d_]
в качестве класса вашего персонажа, чтобы соответствовать, когда пользователь печатает.
^\([\d_]{3}\)[\d_]{3}-[\d_]{4}$
Очевидно, что если пользователь переключает поля, вы захотите вернуть сообщение об ошибке, если ваше поле phone
как и все остальные _
в нем. phone.match(/_/) == null
должен сделать здесь трюк:)