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

Posted

技术标签:

【中文标题】url 字符串,jquery/js 获取两个斜杠之间的数字【英文标题】:url string, jquery/js get numbers that are between two slashes 【发布时间】:2016-04-21 13:07:16 【问题描述】:

我正在开发一个具有如下所示网址的论坛:

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/

/d7/ 是用户名 /2/是用户ID

用户 ID 从 1 变为无限制。

如何“获取”用户 ID?

如果它只有一个数字,例如 2,我想出了如何得到它。但是我如何告诉它查看最后两个斜线之间的每个数字?

【问题讨论】:

链接我们一些你写的代码,我们会调整它。 ;) 【参考方案1】:

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

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/

【讨论】:

【参考方案2】:

可以使用正则表达式:

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

再提琴:http://refiddle.com/refiddles/56995c8875622d3ff7aa0000

示例代码:

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

js 小提琴:https://jsfiddle.net/r55wz2hp/

(还有其他可能更好的方法与正则表达式一起使用)

【讨论】:

【参考方案3】:

这将为您提供所需的答案。

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;

【讨论】:

谢谢,它工作得很好。你还教会了我一些关于如何“思考”使用字符串的意外知识,所以也谢谢你。 :) 没问题! :) 我很高兴能帮上忙。我还想编写备用网址,以防网址没有尾部斜杠(/),或者它是可选的并且可能存在(或不存在)。不要忘记将答案标记为您选择正确的答案。这样未来的编码人员就会看到它。 哦 +1 用于处理没有尾随斜杠的情况 =] @Fallenreaper 将这里所做的事情扔到一个函数中,这样您就可以在需要时随时使用它,您可以根据需要修改所述函数以使其随时可重用。我的两分钱。 @NielsVermeiren Correcy,虽然我想表明它显然是一个布尔值

以上是关于url 字符串,jquery/js 获取两个斜杠之间的数字的主要内容,如果未能解决你的问题,请参考以下文章

转义反斜杠在javascript中打印两个反斜杠

网址中的两条斜杠是啥意思

如何使用JQuery / JS获取URL(外部URL)的网页标题

Nginx之proxy_pass指令url反斜杠作用

url/src/href 属性中的两个正斜杠[重复]

Laravel 5中带有可选参数的url中的两个斜杠