13 个版本
0.3.6+8.13.36 | 2024年7月9日 |
---|---|
0.3.4+8.13.34 | 2024年4月11日 |
0.3.3+8.13.9 | 2023年9月19日 |
0.3.2+8.13.9 | 2023年3月31日 |
0.1.0+8.7.0 | 2017年7月31日 |
#69 在 解析实现
125,003 每月下载量
在 33 个crate中(22 个直接使用)
13MB
3.5K SLoC
phonenumber
Rust 版本的 libphonenumber。目前最低支持的 Rust 版本 (MSRV) 为 1.58.0。
使用方法
将以下内容添加到您的 Cargo.toml
[dependencies]
phonenumber = "0.3"
示例
以下示例演示了如何解析、验证和格式化给定的电话号码。
use phonenumber::Mode;
use std::env;
fn main() {
let mut args = env::args().skip(1).collect::<Vec<_>>();
if args.len() < 1 {
panic!("not enough arguments");
}
let number = args.pop().unwrap();
let country = args.pop().map(|c| c.parse().unwrap());
let number = phonenumber::parse(country, number).unwrap();
let valid = phonenumber::is_valid(&number);
if valid {
println!("\x1b[32m{:#?}\x1b[0m", number);
println!();
println!("International: {}", number.format().mode(Mode::International));
println!(" National: {}", number.format().mode(Mode::National));
println!(" RFC3966: {}", number.format().mode(Mode::Rfc3966));
println!(" E.164: {}", number.format().mode(Mode::E164));
}
else {
println!("\x1b[31m{:#?}\x1b[0m", number);
}
}
依赖项
~5–7MB
~129K SLoC