51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import { RegexOption } from '../types/common-options.js'
|
|
/**
|
|
* Tests if a string matches a regular expression pattern.
|
|
*
|
|
* Supports multiple formats for regex options:
|
|
*
|
|
* - String: Treated as a regex pattern (e.g., "^foo$")
|
|
* - Array: Matches if any pattern in the array matches (OR logic)
|
|
* - Object: Pattern with optional flags (e.g., { pattern: "^foo$", flags: "i" }).
|
|
*
|
|
* The function recursively processes arrays of patterns and includes error
|
|
* handling for invalid regex configurations (e.g., passing RegExp objects
|
|
* instead of strings).
|
|
*
|
|
* @example
|
|
*
|
|
* ```ts
|
|
* // String pattern
|
|
* matches('foo', '^foo$') // Returns: true
|
|
* matches('foobar', '^foo$') // Returns: false
|
|
* ```
|
|
*
|
|
* @example
|
|
*
|
|
* ```ts
|
|
* // Array of patterns (OR logic)
|
|
* matches('foo', ['bar', '^foo$']) // Returns: true (matches second pattern)
|
|
* matches('baz', ['bar', '^foo$']) // Returns: false (matches neither)
|
|
* ```
|
|
*
|
|
* @example
|
|
*
|
|
* ```ts
|
|
* // Pattern with flags
|
|
* matches('FOO', {
|
|
* pattern: '^foo$',
|
|
* flags: 'i',
|
|
* }) // Returns: true (case-insensitive)
|
|
* matches('FOO', '^foo$') // Returns: false (case-sensitive)
|
|
* ```
|
|
*
|
|
* @param value - The string to test against the pattern(s).
|
|
* @param regexOption - The regex pattern(s) to match against.
|
|
* @returns True if the value matches the pattern(s), false otherwise.
|
|
* @throws {Error} If a RegExp object is passed instead of a string pattern.
|
|
*/
|
|
export declare function matches(
|
|
value: string,
|
|
regexOption: RegexOption,
|
|
): boolean
|