12.06.2008, 15:27 | #1 |
Участник
|
Шаблон заполнения поля Телефон
Привет всем, на полях, где укзаывают телефонный номер поставил шаблон для коректного ввода, по единому стандарту (код представлен ниже). Подскажите как можно сделать проверку по нескольким шаблонам введения телефонных номеров (например, х(хххх)хх-хх-хх также х(ххххх)х-хх-хх.
var strInput = crmForm.all.telephone1.DataValue; var strInputCleaned = strInput.replace(/[^0-9,\-,\(,\)]/g, ""); var regexCell = /^[0-9]\d{0}\(\d{3}\)\d{3}-\d{2}-\d{2}/; // Test the cleaned email string against the email regular expression if ( (regexCell.test(strInputCleaned)) ) { crmForm.all.telephone1.DataValue = strInputCleaned; } else { alert("Введений номер не відповідає масці 0(000)000-00-00 "); crmForm.all.telephone1.DataValue = ""; crmForm.all.companyname.SetFocus() ; crmForm.all.telephone1.SetFocus() ; } |
|
13.06.2008, 08:57 | #2 |
Moderator
|
Полагаю добавить несколько регульяных выражений и проверять их по очереди:
var pattern1 = /^[0-9]\d{0}\(\d{3}\)\d{3}-\d{2}-\d{2}/; var pattern2 = /^[0-9]\d{0}\(\d{4}\)\d{2}-\d{2}-\d{2}/; var pattern3 = /^[0-9]\d{0}\(\d{5}\)\d{1}-\d{2}-\d{2}/; if (pattern1.test(telephone)) {...} else if (pattern2.test(telephone)) {...} и т.д. Примеры я привел чисто по аналогии. Синтаксис регулярных выражений JS можно легко найти в Интернет. Честно говоря, не рекомендую вам делать такие вот проверки. Практика показывает, что пользователей ужасно раздражают подобный надзор со стороны системы. Ваш код (crmForm.all.telephone1.DataValue = "" затирает телефон если он был введен не в формате. Может возникнуть ситуация, когда менеджер запишет его со слов клиента, положит трубку и лишь затем попытается сохранить страницу. В это случае телефон будет утерян. Если необходимо вводить телефон в определенном формате (ума не приложу зачем вам это), то лучше просто пытаться его форматировать.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional Последний раз редактировалось Артем Enot Грунин; 13.06.2008 в 09:06. |
|
17.06.2008, 10:28 | #3 |
Заноза в заднице
|
Согласен с Артемом. Когда речь идет о клиентской базе и клиентских менеджерах - порядок в данных лучше наводить ненавязчиво, а принуждать к чему-то пользователей - бесполезная трата времени и сил. А что касается номеров телефонов - масок будет слишком много - я лично исследовал этот вопрос не так давно. Слишком много факторов нужно учитывать: страну клиента, город. Да даже и в этом случае есть такая вещь как внутренний номер, существование которого ломает все возможные схемы и маски. Советую Вам сделать так: если программно можете обработать по шаблону введенный номер - обрабатывайте и форматируйте, а если нет такой возможности - ведите лог таких случаев и проводите разбор номера вручную, с корректировкой вашего алгоритма. Таким образом через полгодика Ваш лог будет стремительно пустеть и в конце концов Вы получите резултат без принуждения.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! |
|
|
|