判断email 输入是否合法
来源:互联网 发布:函数筛选出不重复数据 编辑:程序博客网 时间:2024/06/06 01:34
PROCEDURE check_client_email(p_check_char IN VARCHAR2,
p_sign OUT VARCHAR2,
p_message OUT VARCHAR2) IS
v_email VARCHAR2(1000);
v_singlechar VARCHAR2(3);
v_err_code VARCHAR2(10);
v_prompt VARCHAR2(1000);
BEGIN
p_sign := 'N';
--不区分大小写,全部换成小写
v_email := LOWER(p_check_char);
v_email := NVL(v_email, '*');
--IF LENGTH(v_email) >= 6 THEN
--检查邮件地址中是否有“@”和“.”两个关键字符
IF INSTR(v_email, '@') = 0 OR INSTR(v_email, '.') = 0 THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范,EMAIL未含有“@”和“.”两个关键字符';
RETURN;
END IF;
--检查:
--1、是否出现了多个“@”符号
--2、检查“@”符号是否在开头和结尾
--3、“.”符号在“@”符号之前的部分及“@”符号之后的部分,均不能作为开始或结尾符
--4、“@”符号后的部分,点号至少出现一次,且不能连续出现
IF INSTR(v_email, '@', INSTR(v_email, '@') + 1) <> 0 OR
INSTR(v_email, '@') = 1 OR INSTR(v_email, '@') = LENGTH(v_email) OR
INSTR((SUBSTR(v_email, 1, INSTR(v_email, '@') - 1)), '.') = 1 OR
INSTR(SUBSTR(v_email, 1, INSTR(v_email, '@') - 1), '.', -1) =
LENGTH(SUBSTR(v_email, 1, INSTR(v_email, '@') - 1)) OR
INSTR((SUBSTR(v_email, INSTR(v_email, '@') + 1)), '.') = 1 OR
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.', -1) =
LENGTH((SUBSTR(v_email, INSTR(v_email, '@') + 1))) OR
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.') = 0 OR
INSTR((SUBSTR(v_email, INSTR(v_email, '@') + 1)), '..') > 0 THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
--A段只能由字母、数字、下划线、中划线和点号组成
FOR i IN 1 .. LENGTH(SUBSTR(v_email, 1, INSTR(v_email, '@') - 1)) LOOP
v_singlechar := SUBSTR((SUBSTR(v_email, 1, INSTR(v_email, '@') - 1)),
i,
1);
IF v_singlechar NOT IN ('_',
'-',
'.',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
END LOOP;
--B、C段开头只能为字母或数字
IF SUBSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1,
INSTR(v_email, '.') - 1 - INSTR(v_email, '@')),
1,
1) NOT IN ('0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') OR
SUBSTR(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.') + 1),
1,
1) NOT IN ('0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
--B段只能由字母、数字、下划线、中划线和点号组成
IF LENGTH(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
1,
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.') - 1)) > 1 THEN
FOR i IN 2 .. LENGTH(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
1,
INSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
'.') - 1)) LOOP
v_singlechar := SUBSTR(SUBSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
1,
INSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
'.') - 1),
i,
1);
IF v_singlechar NOT IN ('_',
'-',
'.',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
END LOOP;
END IF;
--C段只能由字母、数字、下划线、中划线和点号组成
IF LENGTH(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.') + 1)) > 1 THEN
FOR i IN 2 .. LENGTH(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
INSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
'.') + 1)) LOOP
v_singlechar := SUBSTR(SUBSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
INSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
'.') + 1),
i,
1);
IF v_singlechar NOT IN ('_',
'-',
'.',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
END LOOP;
END IF;
p_sign := 'Y';
p_message := '校验成功';
EXCEPTION
WHEN OTHERS THEN
p_sign := 'E';
p_message := SUBSTRB('校验EMAIL信息' || p_check_char || '时异常:' || SQLERRM,
1,
300);
-- Logging the error
v_err_code := NULL;
pub_error_handle.exception_no_raise('l_pub_public_biz.check_client_email',
v_err_code,
p_message,
v_prompt);
END check_client_email;
p_sign OUT VARCHAR2,
p_message OUT VARCHAR2) IS
v_email VARCHAR2(1000);
v_singlechar VARCHAR2(3);
v_err_code VARCHAR2(10);
v_prompt VARCHAR2(1000);
BEGIN
p_sign := 'N';
--不区分大小写,全部换成小写
v_email := LOWER(p_check_char);
v_email := NVL(v_email, '*');
--IF LENGTH(v_email) >= 6 THEN
--检查邮件地址中是否有“@”和“.”两个关键字符
IF INSTR(v_email, '@') = 0 OR INSTR(v_email, '.') = 0 THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范,EMAIL未含有“@”和“.”两个关键字符';
RETURN;
END IF;
--检查:
--1、是否出现了多个“@”符号
--2、检查“@”符号是否在开头和结尾
--3、“.”符号在“@”符号之前的部分及“@”符号之后的部分,均不能作为开始或结尾符
--4、“@”符号后的部分,点号至少出现一次,且不能连续出现
IF INSTR(v_email, '@', INSTR(v_email, '@') + 1) <> 0 OR
INSTR(v_email, '@') = 1 OR INSTR(v_email, '@') = LENGTH(v_email) OR
INSTR((SUBSTR(v_email, 1, INSTR(v_email, '@') - 1)), '.') = 1 OR
INSTR(SUBSTR(v_email, 1, INSTR(v_email, '@') - 1), '.', -1) =
LENGTH(SUBSTR(v_email, 1, INSTR(v_email, '@') - 1)) OR
INSTR((SUBSTR(v_email, INSTR(v_email, '@') + 1)), '.') = 1 OR
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.', -1) =
LENGTH((SUBSTR(v_email, INSTR(v_email, '@') + 1))) OR
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.') = 0 OR
INSTR((SUBSTR(v_email, INSTR(v_email, '@') + 1)), '..') > 0 THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
--A段只能由字母、数字、下划线、中划线和点号组成
FOR i IN 1 .. LENGTH(SUBSTR(v_email, 1, INSTR(v_email, '@') - 1)) LOOP
v_singlechar := SUBSTR((SUBSTR(v_email, 1, INSTR(v_email, '@') - 1)),
i,
1);
IF v_singlechar NOT IN ('_',
'-',
'.',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
END LOOP;
--B、C段开头只能为字母或数字
IF SUBSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1,
INSTR(v_email, '.') - 1 - INSTR(v_email, '@')),
1,
1) NOT IN ('0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') OR
SUBSTR(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.') + 1),
1,
1) NOT IN ('0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
--B段只能由字母、数字、下划线、中划线和点号组成
IF LENGTH(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
1,
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.') - 1)) > 1 THEN
FOR i IN 2 .. LENGTH(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
1,
INSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
'.') - 1)) LOOP
v_singlechar := SUBSTR(SUBSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
1,
INSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
'.') - 1),
i,
1);
IF v_singlechar NOT IN ('_',
'-',
'.',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
END LOOP;
END IF;
--C段只能由字母、数字、下划线、中划线和点号组成
IF LENGTH(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
INSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1), '.') + 1)) > 1 THEN
FOR i IN 2 .. LENGTH(SUBSTR(SUBSTR(v_email, INSTR(v_email, '@') + 1),
INSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
'.') + 1)) LOOP
v_singlechar := SUBSTR(SUBSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
INSTR(SUBSTR(v_email,
INSTR(v_email, '@') + 1),
'.') + 1),
i,
1);
IF v_singlechar NOT IN ('_',
'-',
'.',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z') THEN
p_sign := 'N';
p_message := '录入的EMAIL不规范';
RETURN;
END IF;
END LOOP;
END IF;
p_sign := 'Y';
p_message := '校验成功';
EXCEPTION
WHEN OTHERS THEN
p_sign := 'E';
p_message := SUBSTRB('校验EMAIL信息' || p_check_char || '时异常:' || SQLERRM,
1,
300);
-- Logging the error
v_err_code := NULL;
pub_error_handle.exception_no_raise('l_pub_public_biz.check_client_email',
v_err_code,
p_message,
v_prompt);
END check_client_email;
0 0
- 判断email 输入是否合法
- 判断输入的EMAIL地址是否合法
- 判断输入的EMAIL地址是否合法
- 判断email地址是否合法
- 用正则判断所输入的email是否合法
- 用正则判断所输入的Email是否合法
- 判断手机和Email是否合法
- iOS 判断 电子邮箱Email 是否合法
- 判断输入日期是否合法
- 判断输入年份是否合法
- 判断输入是否合法
- 利用正则表达式判断EMAIL是否合法
- 给定一个Email地址判断是否合法
- 判断输入的年月日是否合法
- 判断年月日的输入是否合法
- Java学习-用正则表达式判断email是否合法
- 如何判断日期变量的输入是否合法
- 各种判断输入数据是否合法的js
- SQl Server数据库学习总结
- 在做投屏出现的一个坑
- codevs 1069 关押罪犯
- Android性能优化整理
- mongodb索引占用内存大小优化
- 判断email 输入是否合法
- H5缓存-Manifes
- 数据库MySql类库系列(一)-DBOperator
- 漫谈SOA(面向服务架构)
- FlexboxLayout
- VMware 安装mac方法整理
- Unity3D —— 爆炸交互(震屏效果)
- iOS超全开源框架、项目和学习资料汇总--数据库、缓存处理、图像浏览、摄像照相视频音频篇
- 黑马6-10月JAVAEE+Hadoop大数据第10期