From 3f4c0720e1e3421431e7baa20882a4a4512a7fab Mon Sep 17 00:00:00 2001 From: ivar Date: Sun, 19 Oct 2025 23:41:23 +0200 Subject: Initial --- src/Utilities/Validators.cs | 50 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/Utilities/Validators.cs (limited to 'src/Utilities/Validators.cs') diff --git a/src/Utilities/Validators.cs b/src/Utilities/Validators.cs new file mode 100644 index 0000000..e49d49a --- /dev/null +++ b/src/Utilities/Validators.cs @@ -0,0 +1,50 @@ +using System; +using System.Text.RegularExpressions; + +namespace IOL.Fagprove.Utilities +{ + public static class Validators + { + public static bool IsEmail(this string email) + { + try + { + const string pattern = + @"^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$"; + var regex = new Regex(pattern); + var match = regex.Match(email); + return match.Success; + } + catch + { + return false; + } + } + + public static bool IsMissing(this string value) + { + return string.IsNullOrWhiteSpace(value); + } + + public static bool IsPresent(this string value) + { + return !value.IsMissing(); + } + + public static bool IsNumeric(this string value) + { + var r = new Regex(@"[0-9]"); + return r.IsMatch(value); + } + + public static bool IsInt(this string value) + { + return int.TryParse(value, out _); + } + + public static bool IsGuid(this string value) + { + return Guid.TryParse(value, out _); + } + } +} \ No newline at end of file -- cgit v1.3