2017-04-19 2 views
0

나는 간단한 CLI, 같은 것을 가지고 처리하는 방법 :CLI를 오류

p 'Enter email value' 
params[:email] = gets.chomp 

를 내가 이메일 유효성 검사를 처리하는 경우와 이메일이 유효하지 않은 경우 다음 이전 프롬프트를 다시 실행합니다.

단순히 같은 참 또는 거짓, 뭔가 반환, 이메일을 검증하기위한 방법을 가지고 다시

p 'Enter email value' 
params[:email] = gets.chomp 
if email invalid 
    'error- invalid email' 

p 'Enter email value' 
params[:email] = gets.chomp 

내가 어떻게 할 수있는 실행을?

+0

물어볼 때 적절한 대문자 및 문법을 사용하십시오. SO는 아무 것도없는 토론 목록이 아니며, 문법 계산에 도움이되는 온라인 참고서입니다. –

+0

전자 메일 주소가 RFC 규칙에 따라 유효한지 또는 배달 가능 주소인지 여부 만 확인 하시겠습니까? 첫 번째 패턴은 매우 단순하지 않습니다. 두 번째 방법은 응답을 요청하는 이메일 주소로 이메일을 보내려는 것이 가장 좋습니다. http://stackoverflow.com/a/201378/128421 도움이 될 것입니다. –

답변

0

Regular Expressions으로이를 수행 할 수 있습니다.

def validate_email 
    VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i 
    if email =~ VALID_EMAIL_REGEX 
    # Do someting here 
    else 
    validate_email 
    end 
end 
+0

이 정규식은 유효한 전자 메일 주소의 전체 범위를 처리하기 시작하지 않습니다. –

+0

네, 그냥 예제로 사용하고 있습니다. 그는 MX 레코드에서 이메일 주소를 확인하는 데까지 갈 수 있습니다. –

0

당신은 until 루프 이상에서 읽기

p 'Enter email value' 
params[:email] = gets.chomp 
until email invalid do 
     p 'Enter email value' 
     params[:email] = gets.chomp 
end 

에이 코드를 입력 할 수 있습니다

당신과 같이 정규 표현식을 사용할 수 있습니다, 이메일이 유효한 하나인지 여부를 확인하려면 : https://www.tutorialspoint.com/ruby/ruby_loops.htm