В настоящее время я использую jquery.maskedinput для разных форматов масок, но он не работает для телефонных номеров.
Раньше в Бразилии все числа были в формате (99)9999-9999. Но в последнее время в некоторых городах сотовые телефоны используют (99) 99999-9999, в то время как их обычные телефоны и остальная часть страны остаются (99) 9999-9999.
jquery.maskedinput, похоже, не поддерживает 2 формата на одном и том же входе, где символ в середине строки может присутствовать или отсутствовать. Как я вижу в его документации, у меня могут быть (99)9999-9999 и (99)9999-99999, но это смутит пользователей.
Есть ли какой-либо другой плагин/фреймворк маски, который позволяет мне проверять как (99)9999-9999, так и (99)99999-9999?
Изменить: я создал полный тест, используя решения Гарри и Дмитрия: http://jsfiddle.net/NSd6g/ $('#full').inputmask('(99)9999[9]-9999');
Я подожду еще немного, чтобы увидеть, смогу ли я найти еще лучшее решение. Идеальный не требует красного сообщения, вторая группа по умолчанию будет иметь 4 цифры. И, если третья группа получит пятую цифру, то только тогда вторая группа получит свой пятый пробел, переместив первую цифру третьей группы в пятую цифру второй группы. лол трудно понять, извините!