Как насчет этого ...
var emailRegex = /^([0-9a-z])+@(tomtom|stream)\.com$/ig;
if (emailRegex.test(emailRegex)) {
// Login
}
Вместо выполнения .match (...) - для которого вы получите строку назад, мы можем выполнить .test (...), чтобы проверить, соответствует ли что-либо.
Этот шаблон гарантирует следующее:
- Часть имени пользователя в адресе электронной почты должна содержать как минимум ОДИН символ (например, a@stream.com)
- Имя пользователя должно состоять из цифры или алфавита (верхний / нижний регистр - не имеет значения из-за / i в конце)
- Входные данные должны содержать полный адрес электронной почты без начальных или конечных пробелов. Например, произойдет сбой «user@tomtom.com», он будет принимать только «user@tomtom.com».)
Вы можете настроить это далее, сказав, что имя пользователя должно содержать не менее 3 символов, вы можете использовать подчеркивание или тире в адресе электронной почты и т. Д.
Чтобы ответить на ваш вопрос, оба решения не будут работать. Причины:
- Пользователь может ввести "tom@tomtom.com Hello", и он пройдет обе ваши проверки.
- В частности, в решении № 2 точка '.' является зарезервированным Regex символом, это означает, что он будет соответствовать чему угодно, поэтому, если пользователь введет "@ tomtom1com", он пройдет ...
Подробнее о Regex: http://www.regular -expressions.info / reference.html