Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.02.2022, 19:23
Интересующийся
Отправить личное сообщение для Andrew2108 Посмотреть профиль Найти все сообщения от Andrew2108
 
Регистрация: 18.02.2022
Сообщений: 22

Пробелы в валидации поля
Добрейшего времени суток помогите пожалуйста с проблемой
есть у меня такая регулярка, но она пропускает проблемы вначале "логина" и в конце ,как этого избежать ?
/^[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, 'Введите корректно логин');
	}

так я это всё использую, помогите пожалуйста как убрать эти пробелы
Ответить с цитированием
  #2 (permalink)  
Старый 18.02.2022, 19:51
Интересующийся
Отправить личное сообщение для Andrew2108 Посмотреть профиль Найти все сообщения от Andrew2108
 
Регистрация: 18.02.2022
Сообщений: 22

Можете объяснить почему это так работает ?
я не понимаю...
Ответить с цитированием
  #3 (permalink)  
Старый 18.02.2022, 20:13
Интересующийся
Отправить личное сообщение для Andrew2108 Посмотреть профиль Найти все сообщения от Andrew2108
 
Регистрация: 18.02.2022
Сообщений: 22

Разобрался почему так
у меня следующий вопрос связанный с регулярками
мне нужен ввод маила, чтобы нельзя было ввести два знака @@ по типу mail@@mail.ru && mail@m@ail.ru
Ответить с цитированием
  #4 (permalink)  
Старый 18.02.2022, 20:41
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

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
Ответить с цитированием
  #5 (permalink)  
Старый 18.02.2022, 20:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Andrew2108,
/^[^@]+@[^@]+$/
Ответить с цитированием
  #6 (permalink)  
Старый 18.02.2022, 22:42
Интересующийся
Отправить личное сообщение для Andrew2108 Посмотреть профиль Найти все сообщения от Andrew2108
 
Регистрация: 18.02.2022
Сообщений: 22

Спасибо Nexus, работает, за исключением пробелов в начале и в конце самого маила, не подскажешь как эти пробелы убрать ?
Ответить с цитированием
  #7 (permalink)  
Старый 19.02.2022, 07:16
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Andrew2108,
.trim() ??
Ответить с цитированием
  #8 (permalink)  
Старый 20.02.2022, 16:30
Интересующийся
Отправить личное сообщение для Andrew2108 Посмотреть профиль Найти все сообщения от Andrew2108
 
Регистрация: 18.02.2022
Сообщений: 22

Если трим , то это уже не валидация, а мне нужно, чтобы ошибку давало по типу :"введите правильно маил".если есть пробелы
Ответить с цитированием
  #9 (permalink)  
Старый 20.02.2022, 16:42
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

А зачем тогда вы trim используете?
Покажите свой нынешний код.
Ответить с цитированием
  #10 (permalink)  
Старый 20.02.2022, 18:37
Интересующийся
Отправить личное сообщение для Andrew2108 Посмотреть профиль Найти все сообщения от Andrew2108
 
Регистрация: 18.02.2022
Сообщений: 22

Я проверил, трим убирает пробелы при записи, но мне нужна именно валидация, а не пустое отсечение пробелов, поэтому нужна регулярка, которую я сам пока не в состоянии написать
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 корректно');
	}

Последний раз редактировалось Andrew2108, 20.02.2022 в 18:40. Причина: дополнение
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в середину текстового поля из нескольких слов вставить значение другого поля? AmigoArrigo Общие вопросы Javascript 5 29.03.2021 17:50
Как добавить уникальный идентификатор для нового поля формы? javascript_pupil Общие вопросы Javascript 4 19.12.2020 13:06
В value поля input находится не весь текст из поля DarkLordDark Общие вопросы Javascript 1 13.06.2014 00:17
C поля input в select dima_riabets Элементы интерфейса 3 18.03.2014 22:32
И снова о валидации (remote в jQuery.validation v1.7) Sufir jQuery 0 02.03.2011 13:50