2016-08-11 5 views
-2

Хотите проверить поля электронной почты, в которых пользователь может вводить любые электронные письма. Моя проверка проверки с использованием regex не удалась, когда пользователь скопировал вложенный адрес электронной почты из Outlook. Адрес электронной почты скопировано из Outlook, выглядит по-другому, какПодтвердить адрес электронной почты, скопированный из Outlook

M, Karan <[email protected]> 

И мой вход выглядит [email protected],M, Karan <[email protected]>. Как проверить этот ввод.

++, добавив фрагмент кода

Am передавая отдельные сообщения электронной почты, разделяя их запятой разделителя ниже функции,

function validateEmail(email) { 
    var re = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;  
    return re.test(email); 
} 

Эта логика сломал, когда электронная почта копируется из перспективы доступных во входном элементе.

С нетерпением жду помощи.

+0

Этот вопрос слишком расплывчатый. Просьба привести примеры кода или кода, который вы попробовали. – Twisty

+0

Спасибо за ваш ответ. Я просто добавил фрагмент кода, который я использую. Как я добавляю его из Mobile, я не вижу параметров форматирования для фрагментов кода. Извиняюсь. – Krupa

+0

Я предлагаю вам сломать строку. Возможно, вам потребуется выполнить несколько проходов. Во-первых, мы знаем, что есть определенные символы, которые не могут содержаться в адресе электронной почты. Пространства являются первым очевидным персонажем. Я бы разделил строку на пробелы, протестировал каждую из них, чтобы узнать, является ли это электронным письмом. – Twisty

ответ

0

1. Решение Используйте регулярное выражение, как это (но это конкретное регулярное выражение не лучший в мире :)):

^(([a-zA-Z\-0-9,.: ])*<){0,1}(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))>{0,1}$ 

2. Решение Написать функцию JavaScript, что синтаксический анализ электронной почты а затем используйте свое регулярное выражение. Вот пример функции синтаксического анализа:

function parseEmail(origin) { 
    return origin.substring(origin.lastIndexOf('<')+1, origin.lastIndexOf('>')); 
} 
Смежные вопросы