Remove everything after a certain character

JavascriptJquery

Javascript Problem Overview


Is there a way to remove everything after a certain character or just choose everything up to that character? I'm getting the value from an href and up to the "?", and it's always going to be a different amount of characters.

Like this

/Controller/Action?id=11112&value=4444

I want the href to be /Controller/Action only, so I want to remove everything after the "?".

I'm using this now:

 $('.Delete').click(function (e) {
     e.preventDefault();

     var id = $(this).parents('tr:first').attr('id');                
     var url = $(this).attr('href');

     console.log(url);
 }

Javascript Solutions


Solution 1 - Javascript

var s = '/Controller/Action?id=11112&value=4444';
s = s.substring(0, s.indexOf('?'));
document.write(s);

Sample here

I should also mention that native string functions are much faster than regular expressions, which should only really be used when necessary (this isn't one of those cases).

Updated code to account for no '?':

var s = '/Controller/Action';
var n = s.indexOf('?');
s = s.substring(0, n != -1 ? n : s.length);
document.write(s);

Sample here

Solution 2 - Javascript

You can also use the split() function. This seems to be the easiest one that comes to my mind :).

url.split('?')[0]

jsFiddle Demo

One advantage is this method will work even if there is no ? in the string - it will return the whole string.

Solution 3 - Javascript

var href = "/Controller/Action?id=11112&value=4444";
href = href.replace(/\?.*/,'');
href ; //# => /Controller/Action

This will work if it finds a '?' and if it doesn't

Solution 4 - Javascript

May be very late party :p

You can use a back reference $'

$' - Inserts the portion of the string that follows the matched substring.

let str = "/Controller/Action?id=11112&value=4444"

let output = str.replace(/\?.*/g,"$'")

console.log(output)

Solution 5 - Javascript

It works for me very nicely:

var x = '/Controller/Action?id=11112&value=4444';
var remove_after= x.indexOf('?');
var result =  x.substring(0, remove_after);
alert(result);

Solution 6 - Javascript

If you also want to keep "?" and just remove everything after that particular character, you can do:

var str = "/Controller/Action?id=11112&value=4444",
    stripped = str.substring(0, str.indexOf('?') + '?'.length);

// output: /Controller/Action?

Solution 7 - Javascript

Worked for me:

      var first = regexLabelOut.replace(/,.*/g, "");

Solution 8 - Javascript

You can also use the split() method which, to me, is the easiest method for achieving this goal.

For example:

let dummyString ="Hello Javascript: This is dummy string"
dummyString = dummyString.split(':')[0]
console.log(dummyString)
// Returns "Hello Javascript"

Source: https://thispointer.com/javascript-remove-everything-after-a-certain-character/

Solution 9 - Javascript

if you add some json syringified objects, then you need to trim the spaces too... so i add the trim() too.

let x = "/Controller/Action?id=11112&value=4444";
let result =  x.trim().substring(0,  x.trim().indexOf('?'));  

Solution 10 - Javascript

It can easly be done using JavaScript for reference see link JS String

EDIT it can easly done as. ;)

var url="/Controller/Action?id=11112&value=4444 ";
var parameter_Start_index=url.indexOf('?');
var action_URL = url.substring(0, parameter_Start_index);
alert('action_URL : '+action_URL);

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDejan.SView Question on Stackoverflow
Solution 1 - JavascriptDemian BrechtView Answer on Stackoverflow
Solution 2 - JavascriptkapaView Answer on Stackoverflow
Solution 3 - JavascriptJames KyburzView Answer on Stackoverflow
Solution 4 - JavascriptCode ManiacView Answer on Stackoverflow
Solution 5 - JavascriptSamina ZahidView Answer on Stackoverflow
Solution 6 - JavascriptpatadView Answer on Stackoverflow
Solution 7 - Javascriptuser1786058View Answer on Stackoverflow
Solution 8 - JavascriptIan JaspersView Answer on Stackoverflow
Solution 9 - JavascriptShahnadView Answer on Stackoverflow
Solution 10 - JavascriptImranView Answer on Stackoverflow