UNPKG

locutus

Version:

Locutus other languages' standard libraries to JavaScript for fun and educational purposes

29 lines (28 loc) 1.05 kB
import { getPhpLocaleGroup } from "./_phpRuntimeState.js"; const defaultCtypePatterns = { an: /^[A-Za-z\d]+$/g, al: /^[A-Za-z]+$/g, // biome-ignore lint/suspicious/noControlCharactersInRegex: intentional for LC_CTYPE control character class ct: /^[\u0000-\u001F\u007F]+$/g, dg: /^[\d]+$/g, gr: /^[\u0021-\u007E]+$/g, lw: /^[a-z]+$/g, pr: /^[\u0020-\u007E]+$/g, pu: /^[\u0021-\u002F\u003A-\u0040\u005B-\u0060\u007B-\u007E]+$/g, sp: /^[\f\n\r\t\v ]+$/g, up: /^[A-Z]+$/g, xd: /^[A-Fa-f\d]+$/g, }; export function getCtypePattern(key) { const ctypeGroup = getPhpLocaleGroup('LC_CTYPE', 'LC_CTYPE'); if (!ctypeGroup) { const fallbackPattern = defaultCtypePatterns[key]; return fallbackPattern ? new RegExp(fallbackPattern) : undefined; } const pattern = ctypeGroup[key]; if (pattern instanceof RegExp) { return new RegExp(pattern); } const fallbackPattern = defaultCtypePatterns[key]; return fallbackPattern ? new RegExp(fallbackPattern) : undefined; }