4 个版本
0.1.1 | 2023 年 9 月 3 日 |
---|---|
0.1.0 | 2023 年 9 月 3 日 |
0.0.2 | 2023 年 8 月 30 日 |
0.0.1 | 2023 年 8 月 30 日 |
#2 in #routine
14KB
193 行
NHI
检查字符串是否符合新西兰卫生部 NHI 验证程序。支持在 HISO 10046:2023 中指定的旧版和新版 NHI 号码格式。
文档
示例
可以使用 is_nhi
函数验证 NHI 值,或者解析到 NHI
结构体
use nhi::{is_nhi, NHI};
fn main() {
let nhi_str = "zac5361";
assert_eq!(is_nhi(nhi_str), true);
let nhi: NHI = nhi_str.parse().unwrap();
assert_eq!(nhi.as_str(), nhi_str.to_uppercase());
}
更多示例请参阅 文档。
另请参阅
lib.rs
:
检查字符串是否符合新西兰卫生部 NHI 验证程序。支持在 HISO 10046:2023 中指定的旧版和新版 NHI 号码格式。
用法
简单的 [is_nhi] 函数可以检查一个字符串是否有效
use nhi::is_nhi;
assert_eq!(is_nhi("ZAC5361"), true);
assert_eq!(is_nhi("ZBN77VL"), true);
assert_eq!(is_nhi("ZZZ0044"), false);
assert_eq!(is_nhi("ZZZ00AA"), false);
或者,可以将字符串解析为 [NHI] 值
use nhi::NHI;
let nhi: NHI = "zbn77vl".parse().unwrap();
assert_eq!(nhi.as_str(), "ZBN77VL");
检查不区分大小写。
注意: 这并不检查 NHI 号码是否已经 分配 给某个人,它只是检查 NHI 符合 HISO 10046:2023 标准。
不包括测试用例
以 Z
开头的 NHI 号码保留用于测试。如果您希望使用 [is_nhi] 排除这些值,您需要手动检查 Z
前缀
use nhi::is_nhi;
let value = "zvb97xq";
assert_eq!(is_nhi(value), true);
assert_eq!(!value.to_uppercase().starts_with('Z') && is_nhi(value), false);
或者,解析的 [NHI] 值提供了 NHI::is_test 和 NHI::is_not_test 方法
use nhi::NHI;
let reserved: NHI = "ZAA0105".parse().unwrap();
let unreserved: NHI = "JBX3656".parse().unwrap();
assert!(reserved.is_test());
assert!(unreserved.is_not_test());
注意: 此检查并不意味着 NHI 号码已经 分配 给某个人,它只是意味着 NHI 值不是为测试保留的。
另请参阅
依赖项
~2–3.5MB
~57K SLoC