[英]With JavaScript, I need help concatenating a variable into a regular expression
我正在编写一个JavaScript函数,以从出现在指定段右侧的URL中提取段。
例如,如果这是我的网址...
mysite.com/cat/12/dog/34?test=123
...我希望能够将'cat'传递给函数并获取12,然后将'dog'传递给函数并使其返回34。我在StackOverflow上找到了此答案以提取URL段,但是使用字符串文字。 而且,我很难将传递的值连接起来。
这是我的代码。 在这种情况下,我不想将'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/
谢谢你的帮助!
如果要使用某些字符串变量创建正则表达式,则需要创建一个RegExp
对象:
path.match(new RegExp("\/" + segmentName + "\/([^\/]+)"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.