【发布时间】:2018-09-05 12:30:47
【问题描述】:
有人可以帮我确定沙特 iqama/国民身份证号的现场验证标准吗?
我知道对于国民,它应该以 1 开头,对于外国人,它应该以 2 开头,长度应该是 10。其他的。这是针对已经看到一些不良传入数据造成错误的应用程序,因此不要冒险。提前致谢。
【问题讨论】:
标签: textfield
有人可以帮我确定沙特 iqama/国民身份证号的现场验证标准吗?
我知道对于国民,它应该以 1 开头,对于外国人,它应该以 2 开头,长度应该是 10。其他的。这是针对已经看到一些不良传入数据造成错误的应用程序,因此不要冒险。提前致谢。
【问题讨论】:
标签: textfield
对于 (Id Type='National Id') length = 10 ,Id Number 必须在位置 1 以“1”开头。乘以奇数位置中的每个数字(位置 1、3、5..9 中的字符)乘以 2。如果乘法产生 2 位数字,则将这 2 位数字相加得到一个数字。将 ID 号的前 9 个字符相加(乘法后),得到一个 2 位数字 (XY)。如果 ID 号的第 10 位等于“零”,则前 9 个字符的总和中位置 2 (Y) 的数字减去 10,得到 2 位 (ZN),(N) 应等于身份证号码的第 10 位。否则,ID 号的第 10 位应等于前 9 个字符的总和中位置 2 (Y) 中的数字减去 10。
【讨论】:
Saudi ID Number – 1058529940
Position 1 2 3 4 5 6 7 8 9 10
ID Nbr 1 0 5 8 5 2 9 9 4 0
Multiply 2 0 1 8 1 2 9 9 8
Summate 40
验证位置 10(值 0)= 10 – 数字 2
总和 (0) = 减法数字 2
例如身份证号=1001244019
Position 1 2 3 4 5 6 7 8 9 10
ID Nbr 1 0 0 1 2 4 4 0 1 9
Multiply 2 0 0 1 4 4 8 0 2
Summate 21
验证位置 10(值 9)= 10 – 数字 2
总和 (1)
【讨论】:
尝试使用正则表达式进行验证。 ^[1|2]{1}[0-9]{9} 这对我有用
【讨论】: