日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

postgresql 身份证、手机号、营业执照验证脚本

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgresql 身份证、手机号、营业执照验证脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以前都是寫基于后端的證件號、手機號驗證,最近又數據處理人員,需要基于postgresql數據庫的快速驗證,在網上查詢搜集了一番,資料,這里記錄一下

驗證18位身份證號碼

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 '檢測身份證號%',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

驗證手機號

CREATE OR REPLACE FUNCTION "public"."check_phone"("name_per" text)RETURNS "pg_catalog"."bool" AS $BODY$--------------------------------------------- -- 1.長度,2-11 -- 2.無特殊符號及數字、字母,·除外,^[\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

驗證營業執照

CREATE OR REPLACE FUNCTION "public"."check_phone"("name_per" text)RETURNS "pg_catalog"."bool" AS $BODY$--------------------------------------------- -- 1.長度,2-11 -- 2.無特殊符號及數字、字母,·除外,^[\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

?

總結

以上是生活随笔為你收集整理的postgresql 身份证、手机号、营业执照验证脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。