14 lines
368 B
TypeScript
14 lines
368 B
TypeScript
export namespace Wildcard {
|
|
export function match(str: string, pattern: string) {
|
|
const regex = new RegExp(
|
|
"^" +
|
|
pattern
|
|
.replace(/[.+^${}()|[\]\\]/g, "\\$&") // escape special regex chars
|
|
.replace(/\*/g, ".*") // * becomes .*
|
|
.replace(/\?/g, ".") + // ? becomes .
|
|
"$",
|
|
)
|
|
return regex.test(str)
|
|
}
|
|
}
|