Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пробелы в валидации поля (https://javascript.ru/forum/misc/83707-probely-v-validacii-polya.html)

Andrew2108 18.02.2022 19:23

Пробелы в валидации поля
 
Добрейшего времени суток помогите пожалуйста с проблемой
есть у меня такая регулярка, но она пропускает проблемы вначале "логина" и в конце ,как этого избежать ?
/^[A-Za-z0-9]{6,16}$/
также пробовал с ^[\s]
В центре он не пропускает, а по краям пропускает пробелы
function regLog(login)
{
	return /^[A-Za-z0-9]{6,16}$/.test(login);
}
loginValue = login.value.trim();

else if (!regLog(loginValue))
	{
	setErrorFor(login, 'Введите корректно логин');
	}

так я это всё использую, помогите пожалуйста как убрать эти пробелы

Andrew2108 18.02.2022 19:51

Можете объяснить почему это так работает ?
я не понимаю...

Andrew2108 18.02.2022 20:13

Разобрался почему так
у меня следующий вопрос связанный с регулярками
мне нужен ввод маила, чтобы нельзя было ввести два знака @@ по типу mail@@mail.ru && mail@m@ail.ru

Nexus 18.02.2022 20:41

http://emailregex.com/
var regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[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,}))$/;
alert([
    regex.test('asd@asd'), 
    regex.test('asd@asd.ad'), 
    regex.test('asd@asd@adsda.asd')
]);// false, true, false

рони 18.02.2022 20:48

Andrew2108,
/^[^@]+@[^@]+$/

Andrew2108 18.02.2022 22:42

Спасибо Nexus, работает, за исключением пробелов в начале и в конце самого маила, не подскажешь как эти пробелы убрать ?

Белый шум 19.02.2022 07:16

Andrew2108,
.trim() ??

Andrew2108 20.02.2022 16:30

Если трим , то это уже не валидация, а мне нужно, чтобы ошибку давало по типу :"введите правильно маил".если есть пробелы

voraa 20.02.2022 16:42

А зачем тогда вы trim используете?
Покажите свой нынешний код.

Andrew2108 20.02.2022 18:37

Я проверил, трим убирает пробелы при записи, но мне нужна именно валидация, а не пустое отсечение пробелов, поэтому нужна регулярка, которую я сам пока не в состоянии написать
const emailValue = email.value; // значение из поля
// регулярка 
function regEmail(email)
{
	return /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[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,}))$/.test(email);
}

// вызов регулярки и условие
else if (!regEmail(emailValue))
	{
	setErrorFor(email, 'Введите email корректно');
	}


Часовой пояс GMT +3, время: 19:07.