В JavaScript, как мне проверить, что на входе присутствует только один «@»?

Я пытаюсь создать валидатор электронной почты, и я хочу сделать команду, чтобы проверить, что пользовательский ввод (электронная почта, которую вводит пользователь) содержит ТОЛЬКО ОДИН ИЗ «@» и «.». Пример: имя@@.com будет недопустимым.

function validateEmail(){
let enterEmail = prompt("Enter your email to see if it is valid");
let removeSpace = (enterEmail.trim());
let s = removeSpace.indexOf('@');
let lastS = removeSpace.lastIndexOf('.');
if (s > 1 && lastS > 1) {
    Output("emailOutput", "The Email you have entered is valid");
    }
else {
    Output("emailOutput", "The Email you have entered is invalid");
}   
}

Возможный дубликат Как проверить адрес электронной почты в JavaScript?

Artem Arkhipov 30.05.2019 13:57

Просто сопоставьте регулярное выражение. Обратите внимание, что действующий адрес электронной почты может иметь более одного «.» в нем, поэтому ограничение этого персонажа было бы плохой идеей. На самом деле лучше не пытаться делать что-то большее, чем «stuff@stuff», потому что синтаксис адреса электронной почты чрезвычайно сложен, и даже синтаксически правильный адрес может быть совершенно неправильным.

Pointy 30.05.2019 13:57

Я согласен с @Pointy - я видел и опытный людей, которые слишком много раз неправильно проверяли электронные письма. Один из самых распространенных, который затрагивает лично меня, — это сделать + недействительным, а это не так. Но слишком часто люди отказываются печатать ', поэтому таких, как О'Брайен, исключают из регистрации. .+@.+\..+ должно быть достаточно, чтобы покрыть действительность электронной почты. И даже в этом случае, вероятно, следует просто выдать предупреждение, а не останавливать отправку, поскольку электронное письмо формата email@localdomain — это действительный.

VLAZ 30.05.2019 14:02

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

Icepickle 30.05.2019 14:03
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
65
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

let s = "mail@@@.com"
s.match(/@/g).length 

Длина здесь будет количеством вхождений в строке

Ответ принят как подходящий

вы можете использовать:

const isEmailValid = (email) => {
    const isValid = /\S+@\S+\.\S+/.test(email);
    return isValid;
}

Я понимаю, что это не то, о чем вы спрашиваете (и может быть неактуально), но проверка адреса электронной почты в браузере возможна с помощью:

<input type = "email" />

который изящно деградирует до

<input type = "text" />

Другие вопросы по теме