Inno 설정 스크립트 내 기본 이메일 검증
-
18-09-2019 - |
문제
Inno 설정 스크립트 내에서 기본 문자열 유효성 검사를 수행하고 싶습니다. 나는 단지 '@'캐릭터와 a '가있는 것을보고 싶다. 캐릭터와 이들의 양쪽에 적어도 하나의 캐릭터가 있다는 것입니다. 이 정규 표현과 유사한 것 :
[^@]+@.+\.[^\.]
객체 파스칼에서 이용할 수있는 정규 표현식과 제한된 문자열 함수의 부족으로 인해 슬픔이 발생합니다. 문자열을 뒤집고 첫 번째 '' '를 찾을 수있을 정도로 간단합니다. 그리고 '@'다음 비교를 수행하지만 리버스 (문자열) 기능은 없습니다.
나는 내가 쓰는 도우미 DLL에서 내보내기 기능을 호출 할 수 있다는 것을 알고 있지만이 솔루션을 피하고 싶었습니다.
다른 제안이 있습니까?
해결책
훌륭한 질문! 답을 제안 할 수 있습니다 ...
function ValidateEmail(strEmail : String) : boolean;
var
strTemp : String;
nSpace : Integer;
nAt : Integer;
nDot : Integer;
begin
strEmail := Trim(strEmail);
nSpace := Pos(' ', strEmail);
nAt := Pos('@', strEmail);
strTemp := Copy(strEmail, nAt + 1, Length(strEmail) - nAt + 1);
nDot := Pos('.', strTemp) + nAt;
Result := ((nSpace = 0) and (1 < nAt) and (nAt + 1 < nDot) and (nDot < Length(strEmail)));
end;
이 함수는 이메일 주소에 공백이 없으면 '@'다음 '@'가 있고 '@'and '.'의 양쪽에 하나 이상의 문자가 있습니다. 정부 업무를 위해 충분히 가깝습니다.
제휴하지 않습니다 StackOverflow