UNPKG

rgex

Version:

A powerful, chainable regex builder platform with comprehensive validation utilities

2 lines (1 loc) 2.71 kB
function F(v){return v.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function R(v){let C=[];if(v.global)C.push("g");if(v.ignoreCase)C.push("i");if(v.multiline)C.push("m");if(v.dotAll)C.push("s");if(v.unicode)C.push("u");if(v.sticky)C.push("y");if(v.flags){for(let E of v.flags)if(!C.includes(E))C.push(E)}return C.join("")}function T(v){let C={};if(v.includes("g"))C.global=!0;if(v.includes("i"))C.ignoreCase=!0;if(v.includes("m"))C.multiline=!0;if(v.includes("s"))C.dotAll=!0;if(v.includes("u"))C.unicode=!0;if(v.includes("y"))C.sticky=!0;return C}function H(v){try{return new RegExp(v),!0}catch{return!1}}function N(v){return v.toLowerCase().trim().replace(/\s+/g," ")}function q(v){let C=v.match(/\d+/g);return C?C.map(Number):[]}function A(v,C,E,z=1){let U=v;if(C)U+=E?0.15:-0.2;return U*=z,Math.max(0,Math.min(1,U))}function B(v,C=!0){if(v.length===0)return"";if(v.length===1)return v[0]??"";let E=v.join("|");return C?`(?:${E})`:E}function J(v){return{email:["test@example.com","user.name+tag@domain.co.uk","invalid.email"],phone:["+1234567890","1234567890","123"],url:["https://example.com","http://test.org/path","not-a-url"],number:["123","-45.67","0.5","not-a-number"],date:["2023-12-25","2023-13-45","not-a-date"],time:["14:30","25:61","not-a-time"]}[v]??[]}function K(v){return/[.*+?^${}()|[\]\\]/.test(v)}function L(v){let C=1;return[/\(\?\=/,/\(\?\!/,/\(\?\<\=/,/\(\?\<\!/,/\{[\d,]+\}/,/\[.*?\]/,/\(.*?\)/,/\|/,/\\[dwsWDS]/].forEach((z)=>{let U=v.match(z);if(U)C+=U.length*0.1}),Math.min(C,2)}function M(v,C){let E=null;return(...z)=>{if(E)clearTimeout(E);E=setTimeout(()=>v(...z),C)}}function D(v){if(v===null||typeof v!=="object")return v;if(v instanceof Date)return new Date(v.getTime());if(v instanceof Array)return v.map((C)=>D(C));if(v instanceof Object){let C={};for(let E in v)if(v.hasOwnProperty(E))C[E]=D(v[E]);return C}throw new Error("Unable to clone object")}function Q(v){return/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(v)}function V(v){return`${Math.round(v*100)}%`}function W(){try{if(typeof process!=="undefined"&&process?.env?.NODE_ENV)return!0;if(typeof globalThis!=="undefined"){let v=globalThis;if(v.process?.env?.NODE_ENV)return v.process.env.NODE_ENV==="development"}return!1}catch{return!1}}function X(){return new Date().toISOString()}export{R as optionsToFlags,N as normalizeText,B as mergePatterns,H as isValidRegex,Q as isValidEmail,K as isSpecialChar,W as isDevelopment,X as getTimestamp,J as generateTestData,V as formatConfidence,T as flagsToOptions,q as extractNumbers,F as escapeRegex,D as deepClone,M as debounce,L as calculatePatternComplexity,A as calculateConfidence};