台湾身份证号码的验证规则(5篇)-尊龙凯时最新z6com
工装验证规 篇一
工装验证规程
1、工装制做由机电部设计,生产部安排生产计划,根据生产计划,核定各工序制作工时,确定材料消耗,安排生产。
2、工装制做完成后,应打上工装编号及装配标志,交工装检验员检验,工装检验员根据设计要求,系统全面地检验,并将检验结果如实填入《工装履历卡》以待检验。
3、工装在使用过程中存在问题时,检验员应及时提出返修意见报机电部,机电部根据情况(复杂或一般)打“工装返修通知单”进行随时返修。
4、工装返修完成后,交工装检验员检验,并填写《工装履历卡》即修理记录。以待检验。 工装的验证
5.1工装验证的范围:首次设计制造的工装,经重大修改的工装,返修的大型、多条、精密工装。
5.2工装验证程序可分为:验证计划、验证准备、验证过程、验证判断、验证处理和验证结论六个步骤。
5.3工装验证计划由机电部确定并组织落实;工装验证准备即:机电部提供验证用工艺文件及有关资料,负责验证计划的下达,供应部负责验证用料计划的储备,机修队负责验证工装的设备以及工具的准备,负责领取验证用料及安排操作人员,机电部负责验证工装检查的准备;验证
5.4由机电部负责组织、协调、落实所需费用,一次摊入工装成本;产品零部件按简单与复杂,大型与小型规定检验件数,判其合格率,一般在1~10件内;检验合格的工装,由检验员填写“工装验证书”,工装检验员凭“工装验证书”在《工装履历卡》上加盖“验证合格”印章,签名并注明日期,该工装方可入库使用。
6、工装保管员严格按照检验合格或验证合格的工装接受入库,证件必须齐全,帐、卡、物必须一致,确保合格的工装在生产中使用,进而提高产品质量。
7、工艺装备明细表见附表31、锚杆杆体(螺纹钢)生产时,按工艺流程要求,有定长切断、颈缩、滚丝,其工艺装备用工位器具虽然简单,但为保证质量,必须对此作出规范管理。
2、杆体截断时,应在平台上设置度标记(例:1600,1800,2000mm)确保截断后的杆体长度设计范围内。
3、截断后的杆体,操作人员应对直线度作目测评估,必要时,在检测平台上测定其直线是否符合要求,达到mt146.2-2000要求后,才允许进入下一工序-颈缩。
4、托板成型模具,滚丝托架高度等,应随时检查其尺寸的可靠性,每周均作验证,并记录。
身份证号码验证 篇二
package com.lishi.idcatch;
import ;
import ;
import java.util.calendar;
import ;
import java.util.hashtable;
import ;
import ;
/*********************************** 身
****************************************/
/**份证验证开始
* 身份证号码验证
*
1、号码的结构
* 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,* 八位数字出生日期码,三位数字顺序码和一位数字校验码。
*
2、地址码(前六位数)
* 表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按gb/t2260的规定执行。
*
3、出生日期码(第七位至十四位)
* 表示编码对象出生的年、月、日,按gb/t7408的规定执行,年、月、日代码之间不用分隔符。
*
4、顺序码(第十五位至十七位)
* 表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,* 顺序码的奇数分配给男性,偶数分配给女性。
*
5、校验码(第十八位数)
* (1)十七位数字本体码加权求和公式 s = sum(ai * wi), i = 0, 。.。 , 16 ,先对前17位数字的权求和
* ai:表示第i位置上的身份证号码数字值 wi:表示第i位置上的加权因子 wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4
* 2 (2)计算模 y = mod(s, 11) (3)通过模得到对应的校验码 y: 0 1 2 3 4 5 6 7 8 9 10 校验码: 1 0
* x 9 8 7 6 5 4 3 2
* 2)现在校验最后一位 x必须是大写,其他没有区别!(x表示11)
*/
public class idholder {
/**
* 功能:身份证的有效验证
* @param idstr 身份证号
* @return 有效:返回“" 无效:返回string信息* @throws parseexception*/public static string idcardvalidate(string idstr) throws parseexception {string errorinfo = ”“;// 记录错误信息string[] valcodearr = { ”1“, ”0“, ”x“, ”9“, ”8“, ”7“, ”6“, ”5“, ”4“,”3“, ”2“ };string[] wi = { ”7“, ”9“, ”10“, ”5“, ”8“, ”4“, ”2“, ”1“, ”6“, ”3“, ”7“,”9“, ”10“, ”5“, ”8“, ”4“, ”2“ };
为数字。”;
string ai = “";// ================ 号码的长度 15位或18位 ================if (idstr.length() != 15 && idstr.length() != 18) {errorinfo = ”身份证号码长度应该为15位或18位。“;return errorinfo;}// =======================(end)========================// ================ 数字 除最后以为都为数字 ================if (idstr.length() == 18) {ai = idstr.substring(0, 17);} else if (idstr.length() == 15) {ai = idstr.substring(0, 6) ”19“ idstr.substring(6, 15);}if (isnumeric(ai) == false) {errorinfo = ”身份证15位号码都应为数字 ; 18位号码除最后一位外,都应return errorinfo;}// =======================(end)========================// ================ 出生年月是否有效 ================string stryear = ai.substring(6, 10);// 年份string strmonth = ai.substring(10, 12);// 月份string strday = ai.substring(12, 14);// 月份if (isdate(stryear “-” strmonth “-” strday) == false) {errorinfo = “身份证生日无效。”;return errorinfo;}gregoriancalendar gc = new gregoriancalendar();simpledateformat s = new simpledateformat(“yyyy-mm-dd”);if (calendar.year)s.parse(stryear “-” strmonth “-” strday)。gettime())<0) {errorinfo = “身份证生日不在有效范围。”;
return errorinfo;}if (integer.parseint(strmonth)>12 || integer.parseint(strmonth) == 0) {errorinfo = “身份证月份无效”;return errorinfo;}if (integer.parseint(strday)>31 || integer.parseint(strday) == 0) {errorinfo = “身份证日期无效”;return errorinfo;}// =====================(end)=====================// ================ 地区码时候有效 ================hashtable h = getareacode();if (h.get(ai.substring(0, 2)) == null) {errorinfo = “身份证地区编码错误。”;return errorinfo;}// // ================ 判断最后一位的值 ================int totalmulaiwi = 0;for (int i = 0; i<17; i ) {totalmulaiwi = totalmulaiwi integer.parseint(string.valueof(ai.charat(i)))* integer.parseint(wi[i]);}int modvalue = totalmulaiwi % 11;string strverifycode = valcodearr[modvalue];ai = ai strverifycode;//x必须为大写if (idstr.length() == 18) {if (ai.equals(idstr) == false) {errorinfo = “身份证无效,不是合法的身份证号码”;return errorinfo;}} else {return “";}// =====================(end)=====================return ”“;}/**
* 功能:设置地区编码* @return hashtable 对象*/private static hashtable getareacode() {hashtable hashtable = new hashtable();hashtable.put(”11“, ”北京“);hashtable.put(”12“, ”天津“);hashtable.put(”13“, ”河北“);hashtable.put(”14“, ”山西“);hashtable.put(”15“, ”内蒙古“);hashtable.put(”21“, ”辽宁“);hashtable.put(”22“, ”吉林“);hashtable.put(”23“, ”黑龙江“);hashtable.put(”31“, ”上海“);hashtable.put(”32“, ”江苏“);hashtable.put(”33“, ”浙江“);hashtable.put(”34“, ”安徽“);hashtable.put(”35“, ”福建“);hashtable.put(”36“, ”江西“);hashtable.put(”37“, ”山东“);hashtable.put(”41“, ”河南“);hashtable.put(”42“, ”湖北“);hashtable.put(”43“, ”湖南“);hashtable.put(”44“, ”广东“);hashtable.put(”45“, ”广西“);hashtable.put(”46“, ”海南“);hashtable.put(”50“, ”重庆“);hashtable.put(”51“, ”四川“);hashtable.put(”52“, ”贵州“);hashtable.put(”53“, ”云南“);hashtable.put(”54“, ”西藏“);hashtable.put(”61“, ”陕西“);hashtable.put(”62“, ”甘肃“);hashtable.put(”63“, ”青海“);hashtable.put(”64“, ”宁夏“);hashtable.put(”65“, ”新疆“);hashtable.put(”71“, ”台湾“);hashtable.put(”81“, ”香港“);hashtable.put(”82“, ”澳门“);hashtable.put(”91“, ”国外“);return hashtable;}/**
* 功能:判断字符串是否为数字
* @param str
* @return
*/
private static boolean isnumeric(string str) {
pattern pattern = (”[0-9]*“);
matcher isnum = pattern.matcher(str);
if (isnum.matches()) {
return true;
} else {
return false;
}
}
/**
* 功能:判断字符串是否为日期格式
* @param str
* @return
*/
public static boolean isdate(string strdate) {
pattern pattern = pattern
。compile(”^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|
(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$“);
matcher m = pattern.matcher(strdate);
if (m.matches()) {
return true;
} else {
return false;
}
}
/**
* 顺序码味12-15或者14-17 为 1表示男,0表示女
* @param id 身份证号
* @return
*/
public static int getsex(string id) {
string num = ”“;
if (id.length() == 15) {
num = id.substring(12, 15);
}
if (id.length() == 18) {
num = id.substring(14, 17);
}
int p = integer.parseint(num);
return p % 2;
}
/**
* @param args
* @throws parseexception
*/
public static void main(string[] args) throws parseexception {// string idcardnum=”***“;// string idcardnum=”***114“;string idcardnum = ”***343“;//idholder cc = new idholder();
system.out.println(idholder.idcardvalidate(idcardnum));// system.out.println(cc.isdate(”1996-02-29"));}
/*********************************** 身份证****************************************/
} 验证结束
台湾身份证号码的验证规则 篇三
身分證號碼的驗證規則
一般而言大家對身份字號的認知,多是知道共有10位,位第一位為英文字母,知道再多一點的大概就是第二個數字是男女生之分,男生為 1,女生為 2,接下來的一陀數字,是不是隨便輸入都可以呢?其實是不可以的。
身份證字號後面八個數字不是隨便打一些數字就可以了,其實前面七個可以隨便打,但是最後一位為檢查碼,必須經過之前一個字母與8個數字的組合計算後得出,以下即為檢查碼的運算原則:
1、 英文代號以下表轉換成數字
2、 3. 4. 5. 6. 7. 8. 9. 10. 11. a=10 台北市 j=18 新竹縣 s=26 高雄縣 b=11 台中市 k=19 苗栗縣 t=27 屏東縣 c=12 基隆市 l=20 台中縣 u=28 花蓮縣 d=13 台南市 m=21 南投縣 v=29 台東縣 e=14 高雄市 n=22 彰化縣 * w=32 金門縣 f=15 台北縣 * o=35 新竹市 x=30 澎湖縣 g=16 宜蘭縣 p=23 雲林縣 y=31 陽明山 h=17 桃園縣 q=24 嘉義縣 * z=33 連江縣 * i=34 嘉義市 r=25 台南縣
12、 英文轉成的數字, 個位數乘9再加上十位數
13、 各數字從右到左依次乘1、2、3、4....8
14、 求出(2),(3)之和 15. 求出(4)除10後之餘數,用10減該餘數,結果就是檢查碼,若餘數為0,檢查碼就是 0。
例如: 身分證號碼是 f121955337
f 1 2 1 9 5 5 3 3
1 5 x x x x x x x x x x 1 9 8 7 6 5 4 3 2 1 ───────────────────── 1 45 8 14 6 45 20 15 6 3=163 163/10=16.。.。3 (餘數) 10-3=7 (檢查碼)
以上資訊由 u881510@ 提供,在此致謝。
如何用excel验证身份证号码是否符合规则 篇四
excel中如何提取身份证出生日期、性别、检验身份证号
码的正确性
中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。
18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。
其中3位数字顺序码,是为同一地址码的同年同月同日出生人员编制的顺序号,偶数的为女性,奇数的为男性。
1、提取籍贯地区的行政区划代码(a2为身份证号,下同)
15与18位通用:=left(a2,6)
如果有一个编码和省份地区的对照表,可以用vlookup函数来提取地区信息。2、提取出生日期信息
15位:=--text(19&mid(a2,7,6),“#-00-00”)
18位:=--text(mid(a2,7,8),“#-00-00”)
15与18位通用:=--text(if(len(a2)=15,19,“")&mid(a2,7,6 if(len(a2)=18,2,0)),”#-00-00“)
简化公式:=--text((len(a2)=15)*19&mid(a2,7,6 (len(a2)=18)*2),”#-00-00“)(请将输入公式的单元格格式设置为日期格式)
3、提取性别信息
15位:=if(mod(right(a2),2)=1,”男“,”女“)
18位:=if(mod(mid(a2),17,1)=1,”男“,”女“)
15与18位通用:=if(mod(mid(a2,if(len(a2)=15,15,17),1),2)=1,”男“,”女“)简化公式:=if(mod(right(left(a2,17)),2),”男“,”女“)
4、检验身份证号码的正确性
18位身份证号码的最后一位是检验码,它是根据身份证前17位数字依照规则计算出来的,其值0~9或x。一般情况只要有一位数字输入错误,依照规则计算后就会与第18位数不符。当然不排除按错误号码计算后恰好与检验码相符的情况,但这种情况出现的可能性较低。因此,对18位号码的验证采用如下公式:
=mid(”10x98765432“,mod(sumproduct(mid(a2,row(indirect(”1:17“)),1)*2^(18-row(indirect(”1:17“)))),11) 1,1)=right(a2,1)
对于15位身份证,由于没有检验码,我们只能简单地去判断出生日期代码是否是一个有效的日期,避免输入一些像“731302”或“980230“等这样不存在的日期。
=isnumber(--text(19&mid(a2,7,6),”#-00-00“))
综合15位和18位后的通用公式为:
=if(len(a2)=18,mid(”10x98765432“,mod(sumproduct(mid(a2,row(indirect(”1:17“)),1)*2^(18-row(indirect(”1:17“)))),11) 1,1)=right(a2),if(len(a2)=15,isnumber(--text(19&mid(a2,7,6),”#-00-00“))))
由于目前15位身份证号码已经很少了,如果对15位的号码不需要作进一步的判断,则公式可以简化成:
=if(len(a2)=18,mid(”10x98765432“,mod(sumproduct(mid(a2,row(indirect(”1:17“)),1)*2^(18-row(indirect(”1:17“)))),11) 1,1)=right(a2),len(a2)=15)
将上面的公式放到b2单元格,如果结果为true,则身份证号是正确的,结果为false则是错误的。
你也可以将上述公式放在数据有效性中,防止录入错误的身份证号。操作方法:选择需要输入身份证的全部单元格区域,比如a2:a10,点菜单”数据“-”有效性“,在”允许“的下拉框中选择”自定义“,在”公式“输入上面的15位和18位通用公式,确定以后即可。注意:公式里的”a2“是你刚才选定要输入身份证的单元格★www.chayi5.com★区域的第一个单元格,如果你是要在c3:c20输入身份证号,则将公式里的”a2“改为”c3“。另外,你也可以先设置好某单个单元格的数据有效性(这时公式的a2改为选定的单元格),再用格式刷将其格式刷到其他需要相同设置的单元格。5、15位升为18位
=if(len(a2)=15,replace(a2,7,,19)&mid(”10x98765432“,mod(sumproduct(mid(replace(a2,7,,19),row(indirect(”1:17“)),1)*2^(18-row(indirect(”1:17“)))),11) 1,1),a2)
6、18位转换为15位
=if(len(a2)=18,left(replace(a2,7,2,),15),a2)
7、示例
表中公式:
b2 =if(len(a2)=18,mid(”10x98765432“,mod(sumproduct(mid(a2,row(indirect(”1:17“)),1)*2^(18-row(indirect(”1:17“)))),11) 1,1)=right(a2),if(len(a2)=15,isnumber(--text(19&mid(a2,7,6),”#-00-00“))))
c2 =if(a2<>”“,text((len(a2)=15)*19&mid(a2,7,6 (len(a2)=18)*2),”#-00-00“) 0,)d2 =if(a2<>”“,if(mod(right(left(a2,17)),2),”男“,”女“),)
e2 =if(a2<>”“,datedif(text((len(a2)=15)*19&mid(a2,7,6 (len(a2)=18)*2),”#-00-00“),today(),”y“),)
f2 =if(a2<>”“,vlookup(left(a2,2),地区表!a:d,2,),)
h2 =if(len(a2)=15,replace(a2,7,,19)&mid(”10x98765432“,mod(sumproduct(mid(replace(a2,7,,19),row(indirect(”1:17“)),1)*2^(18-row(indirect(”1:17")))),11) 1,1),a2)i2 =if(len(a2)=18,left(replace(a2,7,2,),15),a2)
javascript正则表达式验证身份证号码(from jeskitt 篇五
from jeskitt javascript正则表达式验证身份证号码(from jeskitt)
//身份证省份 var vcity={ 11:”北京”,12:”天津”,13:”河北”,14:”山西”,15:”内蒙古”, 21:”辽宁”,22:”吉林”,23:”黑龙江”,31:”上海”,32:”江苏”,
33:”浙江”,34:”安徽”,35:”福建”,36:”江西”,37:”山东”,41:”河南”, 42:”湖北”,43:”湖南”,44:”广东”,45:”广西”,46:”海南”,50:”重庆”, 51:”四川”,52:”贵州”,53:”云南”,54:”西藏”,61:”陕西”,62:”甘肃”,
63:”青海”,64:”宁夏”,65:”新疆”,71:”台湾”,81:”香港”,82:”澳门”,91:”国外” };
//身份证验证
var checkcard = function(card) { var card = card;//card为用户输入的身份证号码 //是否为空 if(card === ”) { alert(„请输入身份证号,身份证号不能为空‟); return false; } //校验长度,类型
if(iscardno(card) === false) { alert(„您输入的身份证号码不正确,请重新输入‟); return false; } //检查省份
if(checkprovince(card) === false) { alert(„您输入的身份证号码不正确,请重新输入‟); return false; } //校验生日
if(checkbirthday(card) === false) { alert(„您输入的身份证号码生日不正确,请重新输入‟); return false; } //检验位的检测
if(checkparity(card) === false)
from jeskitt
from jeskitt { alert(„您的身份证校验位不正确,请重新输入‟); return false; } // alert(„ok‟); return true; }; //检查号码是否符合规范,包括长度,类型 var iscardno = function(card) { //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符x var reg = /(^d{15}$)|(^d{17}(d|x)$)/; if(card) === false) { alert(“位数不对”); return false; } return true; };
//取身份证前两位,校验省份
var checkprovince = function(card) { var province = card.substr(0,2); if(vcity[province] == undefined) { return false; } return true; };
//检查生日是否正确
var checkbirthday = function(card) { var len = card.length; //身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字 if(len == ‟15′) { var re_fifteen = /^(d{6})(d{2})(d{2})(d{2})(d{3})$/; var arr_data = card.match(re_fifteen);
from jeskitt
from jeskitt var year = arr_data[2]; var month = arr_data[3]; var day = arr_data[4]; var birthday = new date(‟19′ year ‟/‟ month ‟/‟ day); return verifybirthday(‟19′ year,month,day,birthday); } //身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为x,注意是大写的x if(len == ‟18′) { var re_eighteen = /^(d{6})(d{4})(d{2})(d{2})(d{3})([0-9]|x)$/; var arr_data = card.match(re_eighteen); var year = arr_data[2]; var month = arr_data[3]; var day = arr_data[4]; var birthday = new date(year ‟/‟ month ‟/‟ day); return verifybirthday(year,month,day,birthday); } return false; };
//校验日期
var verifybirthday = function(year,month,day,birthday) { var now = new date(); var now_year = (); //年月日是否合理
if(birthday.getfullyear() == year && (birthday.getmonth() 1) == month && birthday.getdate() == day) { //判断年份的范围(3岁到100岁之间) var time = now_year – year; if(time>= 3 && time<= 100) { return true; } return false; } return false; };
from jeskitt
from jeskitt //校验位的检测
var checkparity = function(card) { //15位转18位
card = changefivteentoeighteen(card); var len = card.length; if(len == ‟18′) { var arrint = new array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrch = new array(‟1′, ‟0′, „x‟, ‟9′, ‟8′, ‟7′, ‟6′, ‟5′, ‟4′, ‟3′, ‟2′);//注意是大写的x var cardtemp = 0, i, valnum; for(i = 0; i<17; i ) { cardtemp = card.substr(i, 1) * arrint[i]; } valnum = arrch[cardtemp % 11]; if (valnum == card.substr(17, 1)) { return true; } return false; } return false; };
//15位转18位身份证号
var changefivteentoeighteen = function(card) { if(card.length == ‟15′) { var arrint = new array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrch = new array(‟1′, ‟0′, „x‟, ‟9′, ‟8′, ‟7′, ‟6′, ‟5′, ‟4′, ‟3′, ‟2′);//注意是大写的x var cardtemp = 0, i; card = card.substr(0, 6) ‟19′ card.substr(6, card.length – 6); for(i = 0; i<17; i ) { cardtemp = card.substr(i, 1) * arrint[i]; } card = arrch[cardtemp % 11]; return card; } return card; };
from jeskitt
from jeskitt
原文网站(from jeskitt) 文章标题:《javascript正则表达式验证身份证号码》 from jeskitt 29th sep,2015
from jeskitt
以上就是差异网为大家整理的5篇《台湾身份证号码的验证规则》,希望对您有一些参考价值,更多范文样本、模板格式尽在差异网。