Rimuovi tutto dopo un certo carattere

C’è un modo per rimuovere tutto dopo un certo personaggio o semplicemente scegliere tutto fino a quel personaggio? Sto ottenendo il valore da un href e fino a “?”, E sarà sempre una quantità diversa di caratteri.

Come questo

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

Voglio che href sia /Controller/Action solo, quindi voglio rimuovere tutto dopo il “?”.

Sto usando questo ora:

  $('.Delete').click(function (e) { e.preventDefault(); var id = $(this).parents('tr:first').attr('id'); var url = $(this).attr('href'); console.log(url); } 

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

Prova qui

Modificare:

Dovrei anche menzionare che le funzioni di stringa native sono molto più veloci delle espressioni regolari, che dovrebbero essere utilizzate solo quando necessario (questo non è uno di quei casi).

2a modifica:

Codice aggiornato per l’account per no ‘?’:

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

http://jsfiddle.net/L4hna/1/

Puoi anche usare la funzione split() . Questo sembra essere il più semplice che mi viene in mente :).

 url.split('?')[0] 

jsFiddle Demo

Un vantaggio è che questo metodo funzionerà anche se non c’è ? nella stringa – restituirà l’intera stringa.

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

Funzionerà se trova un ‘?’ e se così non fosse

 var fromLeft = 8; var s = '/Verify/Action?id=11112&value=4444'; s = s.substring(fromLeft , s.indexOf('/')); alert(s); 

L’output sarà /Verify/

Ha funzionato per me:

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

Se vuoi anche mantenere “?” e basta rimuovere tutto dopo quel particolare carattere, puoi fare:

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

Può essere fatto facilmente utilizzando JavaScript come riferimento, vedi link JS String

EDIT può farlo facilmente come. 😉

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