431 Stimmen

Alles nach einem bestimmten Zeichen entfernen

Gibt es eine Möglichkeit, alles nach einem bestimmten Zeichen zu entfernen oder nur alles bis zu diesem Zeichen auszuwählen? Ich erhalte den Wert von einer href und bis zum "?", und es wird immer eine unterschiedliche Anzahl von Zeichen sein.

Wie diese

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

Ich möchte, dass die href /Controller/Action nur, daher möchte ich alles nach dem "?" entfernen.

Ich benutze das jetzt:

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

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

     console.log(url);
 }

608voto

kapa Punkte 75108

Sie können auch die split() Funktion. Dies scheint mir die einfachste zu sein, die mir einfällt :).

url.split('?')[0]

jsFiddle-Demo

Ein Vorteil ist, dass diese Methode auch dann funktioniert, wenn es keine ? in der Zeichenkette - es wird die gesamte Zeichenkette zurückgegeben.

536voto

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

Muster hier

Ich sollte auch erwähnen, dass native String-Funktionen viel schneller sind als reguläre Ausdrücke, die nur verwendet werden sollten, wenn es notwendig ist (dies ist keiner dieser Fälle).

Der Code wurde aktualisiert, um das Fehlen von '?' zu berücksichtigen:

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

Muster hier

40voto

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

Dies funktioniert, wenn es ein '?' findet, und wenn nicht

13voto

Code Maniac Punkte 35007

Kann sehr spät Party sein :p

Sie können eine Rückverweisung verwenden $'

$' - 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)

7voto

Samina Zahid Punkte 71

Das funktioniert bei mir sehr gut:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X