我有这样的网址
http://example.com/param1/param2/param3
请帮我用javascript获取倒数第二个参数。我搜索并且只能找到正则表达式方法来查找最后一个参数。我是新来的。任何帮助将不胜感激。
感谢。
答案 0 :(得分:8)
var url = 'http://example.com/param1/param2/param3';
var result= url.split('/');
var Param = result[result.length-2];
演示小提琴:http://jsfiddle.net/HApnB/
Split() - 根据您提到的分隔符将字符串拆分为字符串数组
在上面,result
将是一个包含
result = [http:,,example.com,param1,param2,param3];
答案 1 :(得分:4)
基本字符串操作:
> 'http://example.com/param1/param2/param3'.split('/').slice(-2)[0]
"param2"
答案 2 :(得分:2)
您可以通过以下方式执行此操作:
document.URL.split("/");
答案 3 :(得分:2)
var url='http://example.com/param1/param2/param3';
var arr = url.split('/');
alert(arr[arr.length-2]);
arr [arr.length-2]将包含值'param2'。倒数第二个值
答案 4 :(得分:2)
var url = "http://example.com/param1/param2/param3";
var params = url.replace(/^http:\/\/,'').split('/'); // beware of the doubleslash
var secondlast = params[params.length-2]; // check for length!!
答案 5 :(得分:1)
var url = "http://example.com/param1/param2/param3";
var split = url.split("/");
alert(split[split.length - 2]);
-2是为了确保你总是得到第二个
答案 6 :(得分:1)
我最喜欢的答案是来自@Blender的以下内容
'http://example.com/param1/param2/param3'.split('/').slice(-2)[0]
然而,所有答案都受到边缘病例综合症的影响。以下是将上述内容应用于输入字符串的多个变体的结果:
"http://example.com/param1/param2/param3" ==> "param2"
"http://example.com/param1/param2" ==> "param1"
"http://example.com/param1/" ==> "param1"
"http://example.com/param1" ==> "example.com"
"http://example.com" ==> ""
"http://" ==> ""
"http" ==> "http"
请特别注意尾随/
的情况,仅//
的情况和没有/
的情况
您是否需要在代码的较大上下文中确定这些边缘情况是否可接受。
请勿验证此答案,从其他答案中进行选择。
答案 7 :(得分:0)
另一种替代解决方案:
var a = document.createElement('a');
a.href = 'http://example.com/param1/param2/param3'
var path = a.pathname;
// get array of params in path
var params = path.replace(/^\/+|\/+$/g, '').split('/');
// gets second from last parameter; returns undefined if not array;
var pop = params.slice(-2)[0];