2017-02-08 1 views
1

다음 정규식을 사용하여 이메일의 유효성을 검사합니다. 반면에 입력 UI가 동결. 감사 미리정규식의 정규식, UI 고정

'^(?!.*([.+_-])\\1)((?:[a-zA-Z0-9]+[a-zA-Z0-9.+_-]*)*[a-zA-Z0-9])[email protected]((?:[a-zA-Z0-9]+[a-zA-Z0-9-]*)*[a-zA-Z0-9])(?:\\.(?:[a-zA-Z][a-zA-Z0-9]*){2,63})+$' 
+0

이 그것은,'aaa.abc의 @의 gmail.more_here.com'은 이미 치명적인 되돌아 원인이되는 이메일 패턴 – Laazo

+0

일치하지 않습니다. –

+0

'(? : [a-zA-Z] [a-zA-Z0-9] *) {2,63}) + ' –

답변

0

이것은 첫 번째 필수이고 두 번째는 선택적 정량 패턴 정량화 기 의한 치명적인 되돌아 오는 경우이다.

기본적으로, 당신은

[a-zA-Z0-9][a-zA-Z0-9.+_-]*[a-zA-Z0-9] 

((?:[a-zA-Z0-9]+[a-zA-Z0-9.+_-]*)*[a-zA-Z0-9])+ 

을 대체 할 수 있으며 패턴은 코드 실행을 동결 중지됩니다. 그러나 후행 부분 (?:\\.(?:[a-zA-Z][a-zA-Z0-9]*){2,63})+도 이상하게 보입니다. {2,63} 제한 사항이 여기에 적합하지 않으므로 (?:\\.[a-zA-Z][a-zA-Z0-9]*)+으로 줄일 수 있습니다. http://regexr.com/에

사용

'^(?!.*([.+_-])\\1)[a-zA-Z0-9][a-zA-Z0-9.+_-]*[a-zA-Z0-9]@[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9](?:\\.[a-zA-Z][a-zA-Z0-9]*)+$' 
+1

에 대해 고민하시는 분께 빠른 솔루션. 그것은 작동합니다 :) –