├── README.md ├── regex-cards-iban-rib.yaml ├── regex-characters.yaml ├── regex-date.yaml ├── regex-form.yaml └── regex-ip.yaml /README.md: -------------------------------------------------------------------------------- 1 | # REGEX FOR DEVELOPERS 2 | -------------------------------------------------------------------------------- /regex-cards-iban-rib.yaml: -------------------------------------------------------------------------------- 1 | Matches a valid credit card number (13 to 16 digits): 2 | { re: /^\d{13,16}$/, label: 'Valid credit card number' } 3 | 4 | Matches a valid Visa card number (13 to 16 digits starting with 4): 5 | { re: /^4[0-9]{12}(?:[0-9]{3})?$/, label: 'Valid Visa card number' } 6 | 7 | Matches a valid Mastercard number (16 digits starting with 51-55): 8 | { re: /^5[1-5][0-9]{14}$/, label: 'Valid Mastercard number' } 9 | 10 | Matches a valid American Express card number (15 digits starting with 34 or 37): 11 | { re: /^3[47][0-9]{13}$/, label: 'Valid American Express card number' } 12 | 13 | Matches a valid Discover card number (16 digits starting with 6011): 14 | { re: /^6011[0-9]{12}$/, label: 'Valid Discover card number' } 15 | 16 | Matches a valid JCB card number (16 digits starting with 2131 or 1800): 17 | { re: /^(?:2131|1800)[0-9]{11}$/, label: 'Valid JCB card number' } 18 | 19 | Matches a valid Diners Club card number (14 digits starting with 300-305 or 36 or 38): 20 | { re: /^(?:300|301|302|303|304|305|36|38)[0-9]{11}$/, label: 'Valid Diners Club card number' } 21 | 22 | Matches a valid Maestro card number (12 to 19 digits): 23 | { re: /^(?:5[0678]\d\d|6304|6390|67\d\d)[0-9]{8,15}$/, label: 'Valid Maestro card number' } 24 | 25 | Matches a valid UnionPay card number (16 to 19 digits): 26 | { re: /^(?:62[0-9]{14,17})$/, label: 'Valid UnionPay card number' } 27 | 28 | Matches a valid IBAN (supports both uppercase and lowercase): 29 | { re: /^[A-Za-z]{2}\d{2}[A-Za-z0-9]{1,30}$/, label: 'Valid IBAN' } 30 | 31 | Matches a valid French RIB (supports both uppercase and lowercase): 32 | { re: /^[A-Za-z]{2}\d{5}\d{5}[A-Za-z0-9]{11}\d{2}$/, label: 'Valid French RIB' } 33 | 34 | Matches a valid Moroccan RIB (supports both uppercase and lowercase): 35 | { re: /^[A-Za-z]{2}\d{2}\d{5}\d{5}[A-Za-z0-9]{2}\d{2}$/, label: 'Valid Moroccan RIB' } 36 | 37 | Matches a valid Spanish IBAN (supports both uppercase and lowercase): 38 | { re: /^[A-Za-z]{2}\d{2}\d{4}\d{4}\d{1}[A-Za-z0-9]{10}$/, label: 'Valid Spanish IBAN' } 39 | -------------------------------------------------------------------------------- /regex-characters.yaml: -------------------------------------------------------------------------------- 1 | 2 | Matches any lowercase letter: 3 | { re: /[a-z]/, label: 'Includes lowercase letter' }, 4 | 5 | Matches any uppercase letter: 6 | { re: /[A-Z]/, label: 'Includes uppercase letter' }, 7 | 8 | Matches any special symbol: 9 | { re: /[$&+,:;=?@#|'<>.^*()%!-]/, label: 'Includes special symbol' }, 10 | 11 | Matches any digit (0-9): 12 | { re: /\d/, label: 'Includes digit' } 13 | 14 | Matches any non-digit character: 15 | { re: /\D/, label: 'Includes non-digit character' } 16 | 17 | Matches any word character (alphanumeric and underscore): 18 | { re: /\w/, label: 'Includes word character' } 19 | 20 | Matches any non-word character: 21 | { re: /\W/, label: 'Includes non-word character' } 22 | 23 | Matches any whitespace character: 24 | { re: /\s/, label: 'Includes whitespace character' } 25 | 26 | Matches any non-whitespace character: 27 | { re: /\S/, label: 'Includes non-whitespace character' } 28 | 29 | Matches any lowercase letter or digit: 30 | { re: /[a-z0-9]/, label: 'Includes lowercase letter or digit' } 31 | 32 | Matches any character except lowercase letters and digits: 33 | { re: /[^a-z0-9]/, label: 'Includes character except lowercase letters and digits' } 34 | 35 | Matches any uppercase letter or digit: 36 | { re: /[A-Z0-9]/, label: 'Includes uppercase letter or digit' } 37 | 38 | Matches any character except uppercase letters and digits: 39 | { re: /[^A-Z0-9]/, label: 'Includes character except uppercase letters and digits' } 40 | 41 | Matches any letter (uppercase or lowercase): 42 | { re: /[a-zA-Z]/, label: 'Includes letter' } 43 | 44 | Matches any non-letter character: 45 | { re: /[^a-zA-Z]/, label: 'Includes non-letter character' } 46 | 47 | Matches any alphanumeric character: 48 | { re: /[a-zA-Z0-9]/, label: 'Includes alphanumeric character' } 49 | 50 | Matches any non-alphanumeric character: 51 | { re: /[^a-zA-Z0-9]/, label: 'Includes non-alphanumeric character' } 52 | 53 | Matches any character that is a letter, digit, or underscore: 54 | { re: /\w/, label: 'Includes word character' } 55 | 56 | Matches any character that is not a letter, digit, or underscore: 57 | { re: /\W/, label: 'Includes non-word character' } 58 | 59 | Matches any whitespace character (space, tab, newline): 60 | { re: /\s/, label: 'Includes whitespace character' } 61 | 62 | Matches any non-whitespace character: 63 | { re: /\S/, label: 'Includes non-whitespace character' } 64 | 65 | Matches a valid email address: 66 | { re: /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/, label: 'Valid email address' } 67 | 68 | Matches a valid URL: 69 | { re: /^(http|https):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/, label: 'Valid URL' } 70 | 71 | Matches a valid username (consisting of letters, digits, underscores, and hyphens): 72 | { re: /^[A-Za-z0-9_-]+$/, label: 'Valid username' } 73 | 74 | Matches a valid date in the format YYYY-MM-DD: 75 | { re: /^\d{4}-\d{2}-\d{2}$/, label: 'Valid date (YYYY-MM-DD)' } 76 | 77 | Matches a valid HTML tag (opening or closing tag): 78 | { re: /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/, label: 'Valid HTML tag' } -------------------------------------------------------------------------------- /regex-date.yaml: -------------------------------------------------------------------------------- 1 | Matches a valid date in the format DD/MM/YYYY: 2 | { re: /^(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[0-2])\/\d{4}$/, label: 'Valid date (DD/MM/YYYY)' } 3 | 4 | Matches a valid date in the format MM/DD/YYYY: 5 | { re: /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/\d{4}$/, label: 'Valid date (MM/DD/YYYY)' } 6 | 7 | Matches a valid date in the format YYYY-MM-DD: 8 | { re: /^\d{4}-(0[1-9]|1[0-2])-([0-2]\d|3[01])$/, label: 'Valid date (YYYY-MM-DD)' } 9 | 10 | Matches a valid date in the format DD MMM YYYY (e.g., 12 Jan 2023): 11 | { re: /^(0[1-9]|[1-2]\d|3[01]) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4}$/, label: 'Valid date (DD MMM YYYY)' } 12 | 13 | Matches a valid date in the format MMM DD, YYYY (e.g., Jan 12, 2023): 14 | { re: /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[1-2]\d|3[01]), \d{4}$/, label: 'Valid date (MMM DD, YYYY)' } -------------------------------------------------------------------------------- /regex-form.yaml: -------------------------------------------------------------------------------- 1 | Matches a valid email address: 2 | { re: /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/, label: 'Valid email address' } 3 | 4 | Matches a valid username (alphanumeric characters and underscores, 3-16 characters): 5 | { re: /^[A-Za-z0-9_]{3,16}$/, label: 'Valid username' } 6 | 7 | Matches a valid password (at least 8 characters, containing at least one uppercase letter, one lowercase letter, and one digit): 8 | { re: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/, label: 'Valid password' } 9 | 10 | Matches a valid phone number (supports various formats, including international): 11 | { re: /^\+?[0-9]{1,3}-?[0-9]{3,}-?[0-9]{3,}$/, label: 'Valid phone number' } 12 | 13 | Matches a valid URL: 14 | { re: /^(http|https):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/, label: 'Valid URL' } 15 | 16 | Matches a valid image file extension (supports common formats like JPEG, PNG, GIF): 17 | { re: /\.(jpe?g|png|gif)$/, label: 'Valid image file extension' } 18 | 19 | Matches a valid credit card expiration date in MM/YYYY format: 20 | { re: /^(0[1-9]|1[0-2])\/\d{4}$/, label: 'Valid credit card expiration date' } 21 | 22 | Matches a valid US ZIP code (5 digits or 5 digits followed by a hyphen and 4 digits): 23 | { re: /^\d{5}(-\d{4})?$/, label: 'Valid US ZIP code' } 24 | 25 | Matches a valid numeric input (positive integers or decimals): 26 | { re: /^\d*\.?\d+$/, label: 'Valid numeric input' } 27 | 28 | Matches a valid URL with optional http/https prefix: 29 | { re: /^(https?:\/\/)?[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/, label: 'Valid URL with optional prefix' } 30 | 31 | Matches a valid social security number (SSN) in the format XXX-XX-XXXX: 32 | { re: /^\d{3}-\d{2}-\d{4}$/, label: 'Valid Social Security Number (SSN)' } 33 | 34 | Matches a valid HTML color code (hexadecimal format with optional #): 35 | { re: /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/, label: 'Valid HTML color code' } 36 | 37 | -------------------------------------------------------------------------------- /regex-ip.yaml: -------------------------------------------------------------------------------- 1 | Matches a valid IPv4 address (decimal format): 2 | { re: /^(?:\d{1,3}\.){3}\d{1,3}$/, label: 'Valid IPv4 address' } 3 | 4 | Matches a valid IPv6 address (hexadecimal format, colon-separated): 5 | { re: /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/, label: 'Valid IPv6 address' } 6 | 7 | Matches a valid IP address (IPv4 or IPv6): 8 | { re: /^((?:\d{1,3}\.){3}\d{1,3})|(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4})$/, label: 'Valid IP address' } --------------------------------------------------------------------------------