Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
url字符串,jquery/js获取两个斜杠之间的数字_Jquery_Slice - Fatal编程技术网

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

url字符串,jquery/js获取两个斜杠之间的数字,jquery,slice,Jquery,Slice,我正在一个有url的论坛上工作,看起来是这样的: 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 我想出了如

我正在一个有url的论坛上工作,看起来是这样的:

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,如何得到它。但是,我如何告诉它查看最后两个斜杠之间的每个数字呢?

这将为您找到您想要的答案

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;

另一种可能的解决办法是:

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);
}
找到
/
的最后一个索引和最后一个索引,然后找到子字符串,如果没有尾随的
/
,只需找到后面的所有内容

编辑:添加了无尾随
/
的解决方案,因为我受到@fallereneaper的启发


Fiddle:

您可以使用正则表达式:

/^.*/(\d+)/$/mg
重新摆弄:

示例代码:

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


(还有其他可能更好的方法可用于正则表达式)

将您编写的一些代码链接到我们,我们将对其进行调整。)谢谢,它工作得很好。你还教了我一些意想不到的关于如何“思考”使用字符串的知识,所以也谢谢你没问题!:)我很高兴能帮上忙。我还想写另一个例子,以防url没有尾随斜杠(
/
),或者它是可选的,并且可能存在(或者不存在)。别忘了把你选择的答案标注为正确答案。这样,未来的编码人员会看到它。对于处理无尾随斜杠大小写=]@fallerenreaper,请将此处所做的操作放入一个函数中,以便您可以随时使用它,您可以随时修改所述函数,使其可重复使用。我的两分钱。@NielsVermeiren Correcy,尽管我想表明它显然是一个布尔值