Wie man in jquery Teilstring macht

115

Wie kann ich jquery auf der Clientseite verwenden, um "nameGorge" zu unterzeichnen und "name" zu entfernen, damit nur "Gorge" ausgegeben wird?

var name = "nameGorge"; //output Gorge
Schlucht
quelle
15
jQuery ist eine in JavaScript geschriebene Bibliothek. Es wird zusätzlich zu JavaScript verwendet. Was Sie fragen, kann in JavaScript ausgeführt werden, ohne dass die jQuery-Bibliothek verwendet werden muss.
Jeff
1
jQuery IS JavaScript (eine JavaScript-Bibliothek, um genau zu sein, aber dennoch JavaScript). Trotzdem glaube ich nicht, dass die Verwendung von jQuery zum Abrufen eines Teilstrings jemals einfacher geschrieben werden könnte, als dies bereits in reinem JavaScript der Fall ist.
VoidKing

Antworten:

235

Keine jQuery erforderlich! Verwenden Sie einfach die Teilzeichenfolgenmethode:

var gorge = name.substring(4);

Oder wenn der zu entfernende Text nicht statisch ist:

var name = 'nameGorge';
var toRemove = 'name';
var gorge = name.replace(toRemove,'');
Justin Niessner
quelle
5
Tut mir leid, ich habe nicht erwartet, dass dies so heftig explodiert, nachdem ich schlafen gegangen bin. Ich habe hier ein bisschen aufgeräumt. In der Zwischenzeit muss jemand dies
BoltClock
Hey BoltClock: Wie geht es dir? Ich habe versucht, hier einen Punkt zu beweisen, vielen Dank. Das bedeutet, dass ich, wenn ich versuche, einen Code für einen Kunden zu überarbeiten, nach einer Antwort suche und die markierte Antwort des Ops für ihn zufriedenstellend ist. Dann kann ich nicht einfach die gleiche Frage posten oder ein Beispiel für mein Problem geben. Sehr interessant. Meine Frage war also, wie sind diese Leute so sicher, dass ich .split verwende, wenn ich eine jQuery-Funktion ausführe und darin bin Verweisen auf die native JS-Methode oder eine Art Tunneling oder Proxy, um dies über jQuery auszulösen. Auch wenn Sie die Frage lesen.
Jean Paul AKA el_vete
Mein Punkt ist, dass es für mich wirklich wichtig ist, im jQuery-Namespace zu arbeiten, wenn der Fall darin besteht, dass direkt string.split von JS aufgerufen wird, aber stattdessen von der Community habe ich verstanden, dass, wenn ich genau diese Frage poste, Es wird als verengt markiert, da diese Antwort mehr akzeptiert wird als die Tatsache, dass irgendwo ein Verweis auf die jQuery.split-Dokumentation vorhanden ist, sagt mir zumindest, dass dies der Fall sein sollte, weil es dort ist, ohne dass mein Code und die gesamte jQuery in Konflikt geraten Plugins, die auf den gelöschten Bildern zu sehen waren ... also nochmals
vielen
5
@ JeanPaul - jQuery hat keinen split (). Wir haben das schon hinter uns gebracht. Beide Artikel, die Sie mit zuvor verwendetem Text () verknüpft haben, um eine Vanille-JavaScript-Zeichenfolge zu erhalten, haben dann string.split () aufgerufen. In diesem Fall liegen Sie einfach falsch. Lass es fallen.
Justin Niessner
52

Verwenden von .split(). (Zweite Version verwendet .slice()und .join()auf dem Array.)

var result = name.split('name')[1];
var result = name.split('name').slice( 1 ).join(''); // May be a little safer

Verwenden von .replace().

var result = name.replace('name','');

Verwenden .slice()einer Zeichenfolge.

var result = name.slice( 4 );
user113716
quelle
jquery unterstützt nicht das Ersetzen. Dies ist Vanilla js
Jude
9

Das ist einfach nur JavaScript: siehe substringund substr.

casablanca
quelle
1
Oder tatsächlich slice(). Seltsame JS sollten so viele Möglichkeiten haben, dasselbe zu sagen, alle auf subtile Weise unterschiedlich. slice()ist meine bevorzugte Methode, da sie sich konsistent mit slice()Arrays verhält und negative Start- und Endindizes für Index-from-End zulässt.
Bobince
@bobince: Stimmt, und ich erinnere mich nie, welcher von substringund substreinen Längenparameter und welcher einen Endindex verwendet - ich muss immer die Dokumente nachschlagen, um dies herauszufinden.
Casablanca
4

Sie brauchen dazu keine Abfrage.

var placeHolder="name";
var res=name.substr(name.indexOf(placeHolder) + placeHolder.length);
Maurizio Cucchiara
quelle
Ich muss es auf der Client-Seite tun und ich habe bereits jquery. Was schlagen Sie dann vor? Entschuldigung für die einfache Frage, aber ich bin ziemlich ein Anfänger mit js und jquery.
Schlucht
Diese Anweisung würde "nameGorge" zurückgeben, da indexOf ("name") 0 zurückgeben würde.
Justin Niessner
2
var name = "nameGorge";
name.match(/[A-Z].*/)[0]

quelle
0

Ja, das können Sie, obwohl es auf der inhärenten Funktionalität von Javascript und nicht auf der jQuery-Bibliothek beruht.

http://www.w3schools.com/jsref/jsref_substr.asp Mit dieser substrFunktion können Sie bestimmte Teile der Zeichenfolge extrahieren.

Wenn Sie nun nach einer bestimmten Zeichenfolge oder einem bestimmten Zeichen suchen, um herauszufinden, welcher Teil der Zeichenfolge extrahiert werden soll, können Sie auch die Funktion indexOf verwenden. http://www.w3schools.com/jsref/jsref_IndexOf.asp

Die Frage ist allerdings etwas vage; Selbst wenn Sie nur Text mit 'Name' verknüpfen , wird das gewünschte Ergebnis erzielt. Was genau sind die Kriterien, um Ihren Teilstring zu erhalten?

Aaronofleonard
quelle
1
Warum haben Sie strposin einer Frage zu JavaScript auf die Funktion von PHP verlinkt ?
Casablanca
Du hast recht, heute zu viel PHP für mich. Ich habe mit dem entsprechenden JS-Äquivalent bearbeitet. Danke, dass du es verstanden hast.
Aaronofleonard
-1

Wie wäre es mit folgendem?

<script charset='utf-8' type='text/javascript'>
  jQuery(function($) { var a=$; a.noConflict();
    //assumming that you are using an input text 
    //  element with the text "nameGorge"
    var itext_target = a("input[type='text']:contains('nameGorge')");
    //gives the second part of the split which is 'Gorge'
    itext_target.html().split("nameGorge")[1];
    ...
  });
</script>
Jean Paul AKA el_vete
quelle