 
			
				20.02.2022, 21:11
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Ну вот же написали вам регулярку. Наверно она покрывает 95% возможных email адресов и возможных ошибок. Не думаю, что можно (или можно не безумно сложным способом) написать регулярку на 100% покрывающую все допустимые email и отлавливающие все ошибки 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.02.2022, 09:08
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.09.2009 
					
					
					
						Сообщений: 1,578
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Эти валидации емейла, можете из готовых либ поискать 
Вот, например в yii, так делают (часть кода)
 
email: function (value, messages, options) {
            if (options.skipOnEmpty && pub.isEmpty(value)) {
                return;
            }
            var valid = true,
                regexp = /^((?:"?([^"]*)"?\s)?)(?:\s+)?(?:(<?)((.+)@([^>]+))(>?))$/,
                matches = regexp.exec(value);
            if (matches === null) {
                valid = false;
            } else {
                var localPart = matches[5],
                    domain = matches[6];
                if (options.enableIDN) {
                    localPart = punycode.toASCII(localPart);
                    domain = punycode.toASCII(domain);
                    value = matches[1] + matches[3] + localPart + '@' + domain + matches[7];
                }
                if (localPart.length > 64) {
                    valid = false;
                } else if ((localPart + '@' + domain).length > 254) {
                    valid = false;
                } else {
                    valid = options.pattern.test(value) || (options.allowName && options.fullPattern.test(value));
                }
            }
            if (!valid) {
                pub.addMessage(messages, options.message, value);
            }
        },
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.02.2022, 09:50
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Вы сами то тестировали эту регулярку? 
Все верные адреса она пропускает и все неверные отсекает? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.02.2022, 15:42
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.09.2009 
					
					
					
						Сообщений: 1,578
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Да, там все сложнее оказывается, весь этот код выше для чего то своего, а паттерн вот тут тестируется - valid = options.pattern 
 
, паттерн там такой: 
https://www.yiiframework.com/doc/api/2.0/yii-validators-emailvalidator#$pattern-detail 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.02.2022, 16:04
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Все равно всего он не проверяет. Либо не допускает корректные адреса, либо пропускает некорректные 
Я уж не говорю про интернационализацию. (по современным протоколам почтовых серверов в адресе могут быть и кириллические буквы, и греческие, и арабские, и иероглифы).
 https://ru.abcdef.wiki/wiki/Email_address
Поэтому слишком муторно (а возможно ли?) писать регулярку покрывающую 100% верных адресов, и отбрасывающую 100% неверных. 
Да и нужно ли. Ведь пользователь может ошибиться в самом адресе.  
Скажем напишет не  voraa@gmail.com, а  woraa@gmeil.com (что чаще и происходит) 
И толку от этих всех проверок  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.02.2022, 20:17
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.02.2022 
					
					
					
						Сообщений: 22
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Она покрывает все верные и не верные, но маил с пробелом в начале и в конце адреса проходит валидацию.  
Регулярно уже есть, мне нужно, добавить в эту регулярно, чтобы эти пробелы не проходили валидацию, т. Е. Выдавало ошибку, если они будут присутствовать. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.02.2022, 20:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.12.2012 
					
					
					
						Сообщений: 3,841
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Andrew2108,
 
var regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\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,}))$/;
console.log([
    regex.test('asd@aasd.sd'),// true
    regex.test(' [email]asd@aasd.sd[/email] '),// false
    regex.test('asd@aasd.sd '),// false
    regex.test(' [email]asd@aasd.sd[/email]'),// false
    regex.test('asd@@aasd.sd'),// false
    regex.test('asd@aa@sd.sd'),// false
    regex.test('@asd@sd.sd'),// false
    regex.test('asd@sd.sd@'),// false
    regex.test(' @asd@sd.sd'),// false
    regex.test(' @asd@sd.sd '),// false
    regex.test(' [email]asd@sd.sd[/email]@'),// false
    regex.test(' [email]asd@sd.sd[/email]@ ')// false
]);
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.02.2022, 21:05
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.02.2020 
					
					
					
						Сообщений: 2,777
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		А что насчет 
kot.matroskin(familiya takaya)@mail.ru 
kot.matroskin@[IPv6:2001:db8::1] 
"kot\"matroskin\""@mail.ru
 
и 
 kot.matroskin@-mail.ru
Тута видимо такая же косая проверка стоит. 
Верные не распознала, а неверный приняла  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось voraa, 21.02.2022 в 21:10.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.02.2022, 21:50
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.02.2022 
					
					
					
						Сообщений: 22
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Понятно, что проверка косая, критикуете-предлагайте, я попросил ведь ответ мне дать на конкретный вопрос, а не задавать мне вопросы. На данный момент я не знаю как регулярки писать поэтому и обратился за помощью к знающим. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.02.2022, 21:56
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.02.2022 
					
					
					
						Сообщений: 22
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		"  zzzz@mail.ru" - пропускает  
или "zzzz@mail.ru " - также пропускает  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |