github_username_regex/
lib.rs

1#![forbid(unsafe_code, future_incompatible, rust_2018_idioms)]
2#![deny(missing_debug_implementations, nonstandard_style)]
3#![warn(missing_docs, rustdoc::all, unreachable_pub)]
4
5//! A lightweight Rust crate to check if a GitHub username / handle is valid
6
7use regex::RegexBuilder;
8
9/// check if a GitHub username is valid
10/// # Examples
11/// ```
12/// use github_username_regex::valid;
13/// assert_eq!(valid("monalisa"), true);
14/// ```
15pub fn valid(handle: &str) -> bool {
16    let handle_regex: regex::Regex = RegexBuilder::new(r"^[a-z\d](-?[a-z\d]){0,38}$")
17        .case_insensitive(true)
18        .build()
19        .unwrap();
20    handle_regex.is_match(handle)
21}