用于分析路径字符串的Javascript正则表达式

用于分析路径字符串的Javascript正则表达式,javascript,regex,url,url-parameters,Javascript,Regex,Url,Url Parameters,我有一个向用户显示照片和相册的应用程序。根据应用程序的当前状态,我将显示适当的视图。每次视图更改我更改url时,controller都会使用window.location.hash获取url值 它返回此表单的字符串: "photos/byalbum/albumid" "photos/allphotos" "photos/eachphoto/albumid/photoid" 我的问题是如何使用javscript正则表达式解析它,以确定应该显示哪个视图,并获取参数(albumId/photoId)

我有一个向用户显示照片和相册的应用程序。根据应用程序的当前状态,我将显示适当的视图。每次视图更改我更改url时,controller都会使用window.location.hash获取url值

它返回此表单的字符串:

"photos/byalbum/albumid"
"photos/allphotos"
"photos/eachphoto/albumid/photoid"

我的问题是如何使用javscript正则表达式解析它,以确定应该显示哪个视图,并获取参数(albumId/photoId)

我认为您最好这样做,然后使用正则表达式:

"photos/eachphoto/albumid/photoid".split("/")

然后得到可以检查的数组。

与使用正则表达式不同,您可能只需在“/”上拆分字符串,并检查每个值片段以获得所需的数据

var urlString = <your returned value here>;
var urlPieces = urlString.split("/");

var view = urlPieces[1];
var album = (urlPieces[2]) ? urlPieces[2] : "";
var photo = (urlPieces[3]) ? urlPieces[3] : "";
var-urlString=;
var urlpages=urlString.split(“/”);
var-view=urlPieces[1];
var album=(urlpages[2])?URLPecks[2]:“”;
var photo=(urlpages[3])?URLPecks[3]:“”;

然后按照您的意愿播放数据。:)

为什么不
path.split('/')
然后
path[0]~诸如此类呢?您看到了上的信息了吗?也你基本上是在描述一个路由器模式,所以我来看看主干网、AngularJS、Knockout等是如何处理它的。对于示例路径,
photos/byalbum/albumid
,你可以从
0
索引开始,而不是
1
。然而,这确实提出了一个关于是否修剪前导和尾随的好观点。也就是说,我实际上故意漏掉了“0”,因为“照片”是标准的,所以检查它是不相关的。第二个值(索引“1”)似乎表示“视图”和他似乎感兴趣的第一条数据。这是真的。我认为从路径的根开始是个好主意,但我认为这是我的观点。当路径“photos/each\/photo”传入时,它实际上不起作用。“是转义字符。”。如果您有有效的反斜杠,它将表示为“\\”,因此是“photos/each\\/photo”。此外,这看起来不是有效的路径。