Атрымаць другі апошні параметр ў URL з дапамогай JavaScript

У мяне ёсць URL-адрас, як гэта

http://example.com/param1/param2/param3

Калі ласка, дапамажыце мне атрымаць другі апошні параметр, выкарыстоўваючы JavaScript. Я шукаў і знайшоў толькі рэгуляркі метаду, каб знайсці апошні параметр. Я пачатковец у гэтым. Любая дапамога будзе прынятая з удзячнасьцю.

Дзякуючы.

4

8 адказы

var url = 'http://example.com/param1/param2/param3';
var result= url.split('/');
var Param = result[result.length-2];

Demo Fiddle:http://jsfiddle.net/HApnB/

Split() - Splits the string into an array of strings based on the separator you mentioned

У прыведзеным вышэй, Вынік будзе масіў, які змяшчае

result = [http:,,example.com,param1,param2,param3];
8
дададзена

Асноўныя аперацыі радкі:

> 'http://example.com/param1/param2/param3'.split('/').slice(-2)[0]
"param2"
3
дададзена
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!!
2
дададзена

Вы можаце зрабіць гэта:

document.URL.split("/");
2
дададзена
Проста яшчэ адзін адказ адзначыць, спліт вяртае масіў, таму ён павінен атрымаць .Length - 2 пункты.
дададзена аўтар ronnyfm, крыніца
@ronnyfm Вы маеце рацыю, але я лічу, што адказы павінны даць кірунак і прымусіць вас эксперыментаваць не капіяваць і ўстаўляць
дададзена аўтар Igor S., крыніца
var url='http://example.com/param1/param2/param3';
var arr = url.split('/');
alert(arr[arr.length-2]);

обр [arr.length-2] будзе ўтрымліваць значэнне 'param2'. Другое апошняе значэнне

2
дададзена

Мой любімы адказ наступны з @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"

Note in particular the cases of the trailing /, the case with only // and the case with no /

Ці будуць гэтыя крайнія выпадкі з'яўляюцца прымальным тое, што вам трэба будзе вызначыць, у больш шырокім кантэксце вашага кода.

Ня праверыць гэты адказ, выбіраюць з ліку іншых.

1
дададзена
var url = "http://example.com/param1/param2/param3";
var split = url.split("/");
alert(split[split.length - 2]);

Demo: http://jsfiddle.net/gE7TW/

-2, каб пераканацца, што вы заўсёды атрымаеце перадапошні

1
дададзена

Яшчэ адзін альтэрнатыўнае рашэнне:

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]; 
0
дададзена