Подтверждение для электронной почты или номера телефона для того же текстового поля в angularjs

Я работаю над формой регистрации для своего проекта в AngularJs. Пользователи могут зарегистрироваться по электронной почте/телефону. Мне нужно проверить этот конкретный текстовый ящик.

У меня есть проверки для обоих, с разными текстовыми полями, с ng-образцом. Но как я могу проверить для обоих в одном текстовом поле?

Я обновил свой код, здесь: - enter code here http://plnkr.co/edit/mCVxHxl2DIvqOYtVapRN?p=preview

3 ответа

Используйте /^([_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5}))|(\d+$)$/

Демо


Вы можете использовать трубку '|' к ИЛИ двум регулярным выражениям:

/<email-pattern>|<phone-pattern>/
</phone-pattern></email-pattern>

поэтому ваше окончательное регулярное выражение будет:

/^([_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5}))|\d+$/


Вы можете использовать angular проверку формы и директиву ng-pattern для использования ввода ng-pattern="/^(?:\d{10}|\w+@\w+\.\w{2,3})$/"

Рабочий демонстрационный пример

licensed under cc by-sa 3.0 with attribution.