CREATE FUNCTION ufn_EmailValidate (@email varChar(100)) RETURNS int AS BEGIN
DECLARE @invalChars varchar(5), @valid int, @badChar varchar(1), @atPos int, @periodPos int SET @valid = 1 -- 이메일에 불필요한 문자를 @invalChars 변수에 추가합니다. SET @invalChars = ' /:,;'
--이메일 주소 길이가 0인지 점검 IF len(ltrim(rtrim(@email))) = 0 SET @valid = 0 ELSE --이메일 안에 부적절한 문자가 있는지 찾기 위해 반복 WHILE len(@invalChars) > 0 BEGIN -- 이메일에서 불필요한 문자를 @badChar 변수에 하나씩 담고 검사한다. SET @badChar = substring(@invalChars, 1, 1) --부적절한 문자를 발견하면 리턴 값 0으로 설정 IF (charindex(@badChar, @email) > 0) SET @valid = 0 -- 불필요한 문자를 하나씩 없앤다 SET @invalChars = replace(@invalChars, @badChar, '') END
--@문자가 있는지 점검 SET @atPos = charindex('@', @email, 1) IF @atPos = 0 SET @valid = 0
--첫번째 '@' 이후에 또 다른 '@' 문자가 있는지 점검 IF charindex('@', @email, @atPos+1) > 0 SET @valid = 0
-- '@' 문자 다음에 '.' 문자가 있는지 검사 SET @periodPos = charindex('.', @email, @atPos) IF @periodPos = 0 SET @valid = 0 -- 이메일 길이 비교 IF (@periodPos+3) > len(@email) SET @valid = 0
RETURN (@valid)
END |