如何在 JavaScript 中使用正则表达式测试路由
How to test routes using regEx in JavaScript
我的 Node Js 单页面应用程序中有一些路由在没有页面加载的情况下更新。我想使用 regEx 测试一些路由以获得路由的完美匹配。
我在 switch 语句中有 /index
、/contact
、/products
。
switch(window.location.pathname)
case '/index':
break;
case '/contact':
break;
case '/products':
break;
default:
//Returning error page if none of pathname met
break;
如何让用户访问 /products/iphone
或 /products/:brandName/:productId
并能够获取 :brandName 和 :productId in JavaScript 在 vanilla JavaScript
中使用正则表达式
您可以这样做 - 因为路径名的“部分”总是由 /
分隔,所以不需要 regex
的复杂性 - 一个简单的 .split
会做的很好
// the leading , is NOT a typo
const [, root, ...rest] = location.pathname.split('/');
switch (root)
case '/index':
break;
case '/contact':
break;
case '/products': {
const [brandName, productId, ...more] = rest;
// brandName and productId will be the first two parts of the path after /products
}
break;
default:
//Returning error page if none of pathname met
break;
我的 Node Js 单页面应用程序中有一些路由在没有页面加载的情况下更新。我想使用 regEx 测试一些路由以获得路由的完美匹配。
我在 switch 语句中有 /index
、/contact
、/products
。
switch(window.location.pathname)
case '/index':
break;
case '/contact':
break;
case '/products':
break;
default:
//Returning error page if none of pathname met
break;
如何让用户访问 /products/iphone
或 /products/:brandName/:productId
并能够获取 :brandName 和 :productId in JavaScript 在 vanilla JavaScript
您可以这样做 - 因为路径名的“部分”总是由 /
分隔,所以不需要 regex
的复杂性 - 一个简单的 .split
会做的很好
// the leading , is NOT a typo
const [, root, ...rest] = location.pathname.split('/');
switch (root)
case '/index':
break;
case '/contact':
break;
case '/products': {
const [brandName, productId, ...more] = rest;
// brandName and productId will be the first two parts of the path after /products
}
break;
default:
//Returning error page if none of pathname met
break;