我的身份证是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。
我不只是在寻找答案;我也想知道如何做到这一点。