postgresql 身份证、手机号、营业执照验证脚本
生活随笔
收集整理的這篇文章主要介紹了
postgresql 身份证、手机号、营业执照验证脚本
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
以前都是寫(xiě)基于后端的證件號(hào)、手機(jī)號(hào)驗(yàn)證,最近又?jǐn)?shù)據(jù)處理人員,需要基于postgresql數(shù)據(jù)庫(kù)的快速驗(yàn)證,在網(wǎng)上查詢搜集了一番,資料,這里記錄一下
驗(yàn)證18位身份證號(hào)碼
CREATE OR REPLACE FUNCTION "public"."check_idcard"("a_sfz" varchar)RETURNS "pg_catalog"."bool" AS $BODY$DECLARE v_sfz varchar; v_i integer; v_sum integer; v_array1 integer[]; v_array2 varchar[]; v_s varchar; BEGINv_sfz:=upper(trim(a_sfz));raise notice '檢測(cè)身份證號(hào)%',v_sfz;if length(v_sfz)=18 and v_sfz ~ '^[123456789]\d{5}(19|20)\d{2}(0\d|10|11|12)(0\d|1\d|2\d|30|31)\d{3}[\dX]' thenv_array1:=array[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];v_array2:=array['1','0','X','9','8','7','6','5','4','3','2'];v_i:=1;v_sum:=0;loopv_s:=substr(v_sfz,v_i,1);v_sum:=v_sum + cast(v_s as integer)*v_array1[v_i];v_i:=v_i + 1;if v_i>17 thenexit;end if;end loop;v_sum:=mod(v_sum,11) + 1;v_s:=v_array2[v_sum];if v_s=substr(v_sfz,18,1) thenreturn true;elsereturn false;end if;elsereturn false;end if; END $BODY$LANGUAGE plpgsql VOLATILECOST 100驗(yàn)證手機(jī)號(hào)
CREATE OR REPLACE FUNCTION "public"."check_phone"("name_per" text)RETURNS "pg_catalog"."bool" AS $BODY$--------------------------------------------- -- 1.長(zhǎng)度,2-11 -- 2.無(wú)特殊符號(hào)及數(shù)字、字母,·除外,^[\u4e00-\u9fa5]{0,}$ ---------------------------------------------declare beginif length(name_per) !=11 thenreturn false;elseif replace(name_per,'·','') ~* '^1[3|4|5|6|7|8|9][0-9]\d{8}$' thenreturn true;elsereturn false;end if;end if; end; $BODY$LANGUAGE plpgsql VOLATILECOST 100驗(yàn)證營(yíng)業(yè)執(zhí)照
CREATE OR REPLACE FUNCTION "public"."check_phone"("name_per" text)RETURNS "pg_catalog"."bool" AS $BODY$--------------------------------------------- -- 1.長(zhǎng)度,2-11 -- 2.無(wú)特殊符號(hào)及數(shù)字、字母,·除外,^[\u4e00-\u9fa5]{0,}$ ---------------------------------------------declare beginif length(name_per) =0 thenreturn false;elseif replace(name_per,'·','') ~* '^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}' thenreturn true;elsereturn false;end if;end if; end; $BODY$LANGUAGE plpgsql VOLATILECOST 100?
總結(jié)
以上是生活随笔為你收集整理的postgresql 身份证、手机号、营业执照验证脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 华为android解锁,华为bootlo
- 下一篇: 可以在电脑上在线录制视频GIF的软件,不