如何在 javascript 中用通配符匹配字符串
How to match string with a wildcard in javascript
我正在尝试编写一个函数来检查路由是否包含在路由数组中:
const routes = ['/test', '/documentation/*']
function checkRoute(route) {
if (routes.includes(route)) {
console.log('Included!!')
} else {
console.log('Not included!')
}
}
我需要帮助的部分是如何处理通配符 *
- 基本上,我希望包含任何具有 /docs/
前缀的路由,例如:
/documentation/docs.json
、/documentation/index.html
除了进行一些非常混乱的字符串操作外,我不确定如何实现。任何帮助将不胜感激!
您可以使用正则表达式。
const routes = ['\/test\/*', '\/documentation\/*']
function checkRoute(route) {
let regex = new RegExp(route);
let matchedRoutes = routes.filter(route => regex.test(route))
}
这是一个简单形式的通配符匹配函数。使用它并支持所有类型的通配符比较是个不错的主意:
我正在尝试编写一个函数来检查路由是否包含在路由数组中:
const routes = ['/test', '/documentation/*']
function checkRoute(route) {
if (routes.includes(route)) {
console.log('Included!!')
} else {
console.log('Not included!')
}
}
我需要帮助的部分是如何处理通配符 *
- 基本上,我希望包含任何具有 /docs/
前缀的路由,例如:
/documentation/docs.json
、/documentation/index.html
除了进行一些非常混乱的字符串操作外,我不确定如何实现。任何帮助将不胜感激!
您可以使用正则表达式。
const routes = ['\/test\/*', '\/documentation\/*']
function checkRoute(route) {
let regex = new RegExp(route);
let matchedRoutes = routes.filter(route => regex.test(route))
}
这是一个简单形式的通配符匹配函数。使用它并支持所有类型的通配符比较是个不错的主意: