我的身份证是8808135011086。分解是:
880813: 格式为 yy-mm-dd 的出生日期5011: 性别(介于0001-4999是女性和5000-9999是男性之间的任何东西)0: 不管是不是外国的86: 验证者编号以确保其余部分是合法的
将一个 13 位数字分成这样的组880813, 5011, 0,86很容易得到:
/\d{6}\d{4}\d{1}\d{2}/
如何让正则表达式查找\d{4}数字,然后检查它是否介于0001-9999或5000-之间9999?到目前为止,我的代码如下所示:
private
def gender_validation(gender)
case gender
when :male
Employee.id_number.match(/\d{6}\d{4}\d{1}\d{2}/)
return true
when :famale
Employee.id_number.match(/\d{6}\d{4}\d{1}\d{2}/)
return true
else
return false
end
如果标记的性别是男性,那么它会找到第二部分5223,如果它在 and 之间5000,9999它会返回 true。
我不只是在寻找答案;我也想知道如何做到这一点。