我正在编写一个JavaScript函数来从显示在指定细分右侧的网址中提取细分。
例如,如果这是我的网址......
mysite.com/cat/12/dog/34?test=123
...我希望能够将'cat'传递给函数并获得12,然后将'dog'传递给函数并让它返回34.我在StackOverflow上找到了这个答案来提取URL段,但它使用字符串文字。而且我很难连接传入的值。
jQuery to parse our a part of a url path
这是我的代码。在这里,我不想将'cat'硬编码到模式匹配中,而是将'cat'传递给segmentName参数并使正则表达式匹配。
var url = "www.mysite.com/cat/12/dog/34?test=123";
alert(getNextSegmentAfterSegmentName(url, 'cat'));
function getNextSegmentAfterSegmentName(currentPath, segmentName) {
var nextSegment = "";
segmentName = segmentName.toLowerCase();
//var currentPath = window.location.pathname.toLowerCase();
if (currentPath.indexOf(segmentName) >= 0) {
var path = currentPath.split('?')[0]; // Strip querystring
// How do I concatenate segmentName into this?
var matches = path.match(/\/cat\/([^\/]+)/);
if (matches) {
nextSegment = matches[1];
}
}
return nextSegment;
}
这是一个jsfiddle示例: http://jsfiddle.net/Stormjack/2Ebsv/
感谢您的帮助!
答案 0 :(得分:1)
如果要使用某个字符串变量创建正则表达式,则需要创建RegExp
对象:
path.match(new RegExp("\/" + segmentName + "\/([^\/]+)"));