有一些API有一些版本。即1. /v1/order/create 2./order/v2/create它们是要调用的通用中间件。在middleawre中,我需要API的版本(即v1或v2)来执行特定版本的某些特定任务。我尝试了下面的代码,但失败的第二种类型的网址。
var pieces = req.url.replace(/^\/+/, '').split('/'); var version = pieces[0]; req.version = version || 0;
ocebsuys1#
不要从URL的开头开始搜索。尝试以下操作:
var match = req.url.match(/\/v([0-9]+)\//); var version = 0; if (match) { version = match[1]; } console.log(version); // outputs version number
nkhmeac62#
您可以使用以下命令:正则表达式:/\/(v\d+)\//
/\/(v\d+)\//
(v\d+)
/\/(v\d+.?\d*)\//
var url = "/v1/order/create" var pieces = url.match(/\/(v\d+)\//); console.log(pieces[1]); // Output is v1
2条答案
按热度按时间ocebsuys1#
不要从URL的开头开始搜索。尝试以下操作:
nkhmeac62#
您可以使用以下命令:
正则表达式:
/\/(v\d+)\//
(v\d+)
允许捕获v,后面跟随一些整数,例如v1,v2,v123,v0等。/\/(v\d+.?\d*)\//
。例如:v1.1、v2.0等