#numbers #health #validation #string #routine #zealand #ministry

nhi

一个用于检查字符串是否符合新西兰卫生部 NHI 验证程序的函数

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

MIT 许可证

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_testNHI::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