Erick Engelhardt
Erick Engelhardt

Reputation: 724

How can I cut a substring from a string to the end using Javascript?

I have a url:

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

I want to get the address after the last dash using javascript:

dashboard.php?page_id=projeto_lista&lista_tipo=equipe

Upvotes: 19

Views: 71216

Answers (7)

Jasper
Jasper

Reputation: 75993

You can use indexOf and substr to get the sub-string you want:

//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);

The strOut variable now holds everything after /dashboard.php (including that string).

Here is a demo: http://jsfiddle.net/DupwQ/

UPDATE:

The strOut variable in the example above includes the prefixed forward slash and it was requested that the output should not.

Replacing strOut = strIn.substr(index) with strOut = strIn.substr(index + 1) fixes the output for this specific use case by starting the substring one character farther ahead in the string.

Something else you could do is search for the string after a specific search term (non-inclusive):

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 now holds everything after /dashboard.php? (non-inclusive).

Here is an updated demo: http://jsfiddle.net/7ud0pnmr/1/

Docs -

Upvotes: 41

Nabi K.A.Z.
Nabi K.A.Z.

Reputation: 10704

You can use this code, if there are not dashboard... return empty.

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);

Upvotes: 0

prieber
prieber

Reputation: 574

This may be new, but the substring method returns everything from a specified index to the end of the string.

var string = "This is a test";

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

Upvotes: 9

japetko
japetko

Reputation: 358

First of all SPLIT URL:

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

Find the last array:

var num = arr_split.length-1;

You get the address after the last dash:

alert(arr_split[num]);

Upvotes: 0

Antony Scott
Antony Scott

Reputation: 21978

No need for jQuery, plain old javascript will do the job just fine.

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

and if you want the leading /

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

Upvotes: 2

Jacob Brunson
Jacob Brunson

Reputation: 1482

If the beginning is always "http://localhost/40ATV" you can do this:

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

Upvotes: 5

FishBasketGordo
FishBasketGordo

Reputation: 23132

The native JavaScript String method substr[MDN] can accomplish what you need. Just supply the starting index and omit the length parameter, and it grabs all the way to the end.

Now, how to go about getting the starting index? You didn't give any criteria, so I can't really help with that.

Upvotes: 4

Related Questions