Blog>
Snippets

Wildcard Path Matcher

Provide an example of a custom route matcher that uses wildcards to match a broader set of URLs.
function wildcardMatch(pattern, string) {
  // Escape regex special characters except '*' and replace '*' with '.*' to match any string
  const regexPattern = pattern.replace(/[.+?^${}()|[\/\]\\]/g, '\\$&').replace(/\*/g, '.*');
  // Create a regex from the modified pattern
  const regex = new RegExp('^' + regexPattern + '$');
  // Test the string against the regex
  return regex.test(string);
}
This function 'wildcardMatch' takes a pattern with wildcards (*) and a string to match against. It escapes special regex characters in the pattern, replaces wildcards with the regex equivalent '.*' for zero or more of any character, constructs a RegExp object, and finally tests if the string fits the pattern.