MySQL 是一款廣泛應(yīng)用于 Web 應(yīng)用程序和為互聯(lián)網(wǎng)提供服務(wù)的開(kāi)源數(shù)據(jù)庫(kù),其擁有數(shù)據(jù)穩(wěn)定性高、兼容性好、易于維護(hù)等特點(diǎn),已經(jīng)成為 Web 開(kāi)發(fā)人員的首選。
在日常應(yīng)用中,很多場(chǎng)景需要對(duì)身份證號(hào)進(jìn)行校驗(yàn),以保證數(shù)據(jù)的有效性和安全性。MySQL 提供了如下函數(shù)用于校驗(yàn)身份證號(hào):
SELECT IF( '身份證號(hào)' REGEXP '[1-9]\d{5}(18|19|20)\d{2}(0\d|1[012])([012]\d|3[01])\d{3}[\dX]', '合法', '非法' );
其中,身份證號(hào)規(guī)則如下:
- 前六位:地址碼,但在現(xiàn)行標(biāo)準(zhǔn)中,只要兩個(gè)地方開(kāi)頭的六位數(shù)字是相同的,就在第一個(gè)六位數(shù)后面加一個(gè)“1”,在第二個(gè)六位數(shù)后面加“2”。
- 7-14位:出生日期碼,第 7 位到第14位,共 8 位數(shù)字,按照年、月、日的順序排列。年份最前兩位是與地區(qū)對(duì)應(yīng)的編號(hào),后兩位是人的出生年份。
- 15-17位:順序碼,用于區(qū)別同一地區(qū)和同一出生日期出生的人。隨著政府的科技發(fā)展,定期更換。單數(shù)為男,雙數(shù)為女。
- 18位:校驗(yàn)碼,實(shí)際上前十七位數(shù)字本體碼已經(jīng)確定,第十八位數(shù)字為校驗(yàn)碼。
使用 MySQL 內(nèi)置的校驗(yàn)函數(shù)可以便捷地檢驗(yàn)輸入的身份證號(hào)是否合法,有效防止非法數(shù)據(jù)的注入,保障信息安全。
上一篇mysql 跳表
下一篇css雪碧 要還是不要