url字符串,jquery/js获取两个斜杠之间的数字

qrjkbowd  于 2023-05-06  发布在  jQuery
关注(0)|答案(3)|浏览(156)

我在一个论坛上工作,有网址的,看起来像这样:

http://www.place.com/forum/d7/2/
http://www.place.com/forum/d7/22/
http://www.place.com/forum/d7/234/
http://www.place.com/forum/d7/9999/
http://www.place.com/forum/d7/98765/

/d 7/是用户名/2/是用户ID
用户ID从1到无限。
如何“获取”用户ID?
如果只有一个数字,例如2,我知道如何得到它。但是我怎么告诉它去看最后两个斜线之间的每一个数字呢?

suzh9iv8

suzh9iv81#

这会给你你想要的答案。

var url = "http://www.place.com/forum/d7/9999/".split("/");
var id = url[url.length - 2];

如果存在尾随/,则这将起作用。
如果没有,那么它是-1而不是-2,但是如果检查最后一个字符,您可以使用它作为您的理解。

var url = "http://www.place.com/forum/d7/9999/";
var isLastSlash = (url[url.length -1]=="/")? true: false;
var url= url.split("/");
var id = url[url.length - (isLastSlash? 2: 1)];
return id;
yk9xbfzb

yk9xbfzb2#

另一种可能的解决方案是这样的:

var result, str = "http://www.place.com/forum/d7/98765/";
var lastIndex = str.lastIndexOf('/');
if (str.slice(-1) != "/") {
    result = str.substring(lastIndex + 1, str.length);
}
else {
    var prevIndex = str.lastIndexOf('/', lastIndex - 1);
    result = str.substring(prevIndex + 1, lastIndex);
}

查找/的最后一个索引和倒数第二个索引,然后查找子串,如果没有尾随/,则查找其后的所有内容。
编辑:添加了没有尾随/的解决方案,因为我受到了@Fallenreaper的启发
小提琴:https://jsfiddle.net/uzxcodu1/1/

qco9c6ql

qco9c6ql3#

可以使用正则表达式:

/^.*/(\d+)/$/mg

示例代码:

var url="http://www.place.com/forum/d7/98765/"
var re = /^.*\/(\d+)\/$/mg;
var id= re.exec(url)[1]
alert(id);

(还有其他可能更好的方法可以与regex一起使用)

相关问题