Как я могу отрезать подстроку от строки до конца с помощью Javascript?

У меня есть url:

http://localhost/40ATV/dashboard.php?page_id=projeto_lista&lista_tipo=equipe

Я хочу получить адрес после последней тире, используя javascript:

dashboard.php?page_id=projeto_lista&lista_tipo=equipe

Ответ 1

Вы можете использовать indexOf и substr, чтобы получить нужную подстроку:

//using a string variable set to the URL you want to pull info from
//this could be set to 'window.location.href' instead to get the current URL
var strIn  = 'http://localhost/40ATV/dashboard.php?page_id=projeto_lista&lista_tipo=equipe',

    //get the index of the start of the part of the URL we want to keep
    index  = strIn.indexOf('/dashboard.php'),

    //then get everything after the found index
    strOut = strIn.substr(index);

Переменная strOut теперь содержит все после /dashboard.php (включая эту строку).

Вот демо: http://jsfiddle.net/DupwQ/

UPDATE:

Переменная strOut в приведенном выше примере включает в себя префикс прямой косой черты, и было запрошено, что вывод не должен.

Замена strOut = strIn.substr(index) на strOut = strIn.substr(index + 1) исправляет вывод для этого конкретного варианта использования, начиная подстроку на один символ дальше в строке.

Что еще можно сделать, это поиск строки после определенного поискового запроса (не включительно):

var strIn = 'http://localhost/40ATV/dashboard.php?page_id=projeto_lista&lista_tipo=equipe';
var searchTerm = '/dashboard.php?';
var searchIndex = strIn.indexOf(searchTerm);
var strOut = strIn.substr(searchIndex + searchTerm.length); //this is where the magic happens :)

strOut теперь содержит все после /dashboard.php? (не включительно).

Вот обновленная демонстрация: http://jsfiddle.net/7ud0pnmr/1/

Документы -

Ответ 2

Если начало всегда "http://localhost/40ATV", вы можете сделать это:

var a = "http://localhost/40ATV/dashboard.php?page_id=projeto_lista&lista_tipo=equipe";
var cut = a.substr(22);

Ответ 3

Собственный метод JavaScript String substr [MDN] может выполнить то, что вам нужно. Просто поставьте начальный индекс и опустите параметр длины, и он полностью зацепится до конца.

Теперь, как получить начальный индекс? Вы не дали никаких критериев, поэтому я не могу с этим поделать.

Ответ 4

Это может быть новый, но метод substring возвращает все из указанного индекса в конец строки.

var string = "This is a test";

console.log(string.substring(5));
// returns "is a test"

Ответ 5

Не нужно jQuery, простой старый javascript будет делать работу просто отлично.

var myString = "http://localhost/40ATV/dashboard.php?page_id=projeto_lista&lista_tipo=equipe";
var mySplitResult = myString.split("\/");
document.write(mySplitResult[mySplitResult.length - 1]);​

и если вы хотите, чтобы ведущий /

document.write("/" + mySplitResult[mySplitResult.length - 1]);​

Ответ 6

Прежде всего SPLIT URL:

var str = "http://localhost/40ATV/dashboard.php?page_id=projeto_lista&lista_tipo=equipe";
var arr_split = str.split("/");

Найти последний массив:

var num = arr_split.length-1;

Вы получите адрес после последней тире:

alert(arr_split[num]);

Ответ 7

Вы можете использовать этот код, если нет dashboard..., возвращайте пустой.

var str = 'http://localhost/40ATV/dashboard.php?page_id=projeto_lista&lista_tipo=equipe';
var index = str.indexOf('/dashboard.php') + 1;
var result = '';
if (index != 0) {
  result = str.substr(index);
}
console.log(result);