2010-11-08 17 views
116

Wie kann ich jQuery auf der Client-Seite verwenden, um "NameGorge" Teilstring und entfernen Sie "Name", so dass es nur "Schlucht" ausgibt?Wie Teilstring in Jquery

var name = "nameGorge"; //output Gorge 
+15

jQuery ist eine in JavaScript geschriebene Bibliothek. Es wird über JavaScript verwendet. Was Sie fragen, kann in JavaScript durchgeführt werden, ohne dass Sie die jQuery-Bibliothek überhaupt verwenden müssen. – Jeff

+1

jQuery IS JavaScript (eine JavaScript-Bibliothek um genau zu sein, aber dennoch JavaScript). Nachdem ich das gesagt habe, glaube ich nicht, dass die Verwendung von jQuery, um einen Teilstring zu erhalten, jemals einfacher geschrieben werden könnte, als es bereits in reinem JavaScript der Fall ist. – VoidKing

Antwort

236

Keine jQuery benötigt! Verwenden Sie einfach den Teil Methode:

var gorge = name.substring(4); 

Oder wenn der Text, den Sie nicht statisch entfernen will, ist:

var name = 'nameGorge'; 
var toRemove = 'name'; 
var gorge = name.replace(toRemove,''); 
+5

Entschuldigung, habe nicht erwartet, dass dies so stark explodiert, nachdem ich gegangen bin Schlaf. Ich habe die Dinge hier ein wenig aufgeräumt. In der Zwischenzeit muss jemand [das] lesen (http://meta.stackexchange.com/questions/19478/the-many-memes-of-meta/19492#19492) – BoltClock

+0

Hey BoltClock: Wie geht es dir? Ich habe versucht, hier einen Punkt zu beweisen, vielen Dank. Das heißt, wenn ich versuche, einen Code für einen Kunden zu überarbeiten, und ich komme hierher, um nach einer Antwort zu suchen, und die deutliche Antwort des OP ist zufriedenstellend für ihn. Dann kann ich nicht einfach die gleiche Frage stellen oder ein Beispiel für mein Problem geben .. sehr interessant .. so meine Frage war, wie sind diese Jungs so sicher, dass, wenn ich eine jQuery-Funktion und drinnen bin ich .split ich bin Verweisen auf den nativen JS-Weg oder eine Art von Tunneling oder Proxy, um das durch jQuery auszulösen. Auch wenn du die Frage liest. –

+0

Mein Punkt ist, dass für mich innerhalb der jQuery Namespace arbeitet, ist mir wirklich egal, wenn der Fall ist, dass direkt String.split von JS aufruft, aber stattdessen von der Gemeinschaft habe ich verstanden, wenn ich diese genaue Frage posten , wird es als eingegrenzt markiert, da diese Antwort mehr akzeptiert wird als die Tatsache, dass es irgendwo eine jQuery.split Dokumentation gibt, die mir zumindest sagt, dass es sein sollte, weil es da ist, ohne meinen Code und alle anderen Konflikte zu verursachen jQuery plugins das auf den gelöschten Bildern konnte man sehen ... also nochmals danke –

4

Sie brauchen keine jquery, um das zu tun.

var placeHolder="name"; 
var res=name.substr(name.indexOf(placeHolder) + placeHolder.length); 
+0

Ich muss es auf der Client-Seite tun, und ich habe bereits jquery. Was schlägst du dann vor? Sorry für die einfache Frage, aber ich bin ziemlich ein Anfänger mit js und jquery. – Gorge

+0

Diese Anweisung würde "nameGorge" zurückgeben, da indexOf ("name") 0 zurückgeben würde. –

+0

Sie haben recht Ich habe das Skript bearbeitet, jetzt sollte es funktionieren –

9

Das JavaScript ist einfach nur: substring und substr sehen.

+1

Oder tatsächlich ['slice()'] (http://docs.sun.com/source/816-6408-10/string.htm#1194366). Seltsames JS sollte so viele Möglichkeiten haben, dasselbe zu sagen, alles subtil verschieden. 'slice()' ist meine bevorzugte Methode, da sie sich mit 'slice()' auf Arrays konsistent verhält und negative Anfangs- und Endindizes für index-from-end erlaubt. – bobince

+0

@bobince: True, und ich erinnere mich nie daran, welche von 'substring' und 'substr 'einen length-Parameter und welche einen end-Index nimmt - ich muss immer die Dokumente suchen, um herauszufinden. – casablanca

52

Verwenden .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 

.replace() verwenden.

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

Verwendung .slice() auf einem String.

var result = name.slice(4); 
+0

tolle Zusammenfassung der String-Manipulationsoptionen! Vielen Dank. – Damon

+0

Ja, ich mag seinen Ansatz hier. +1 –

+0

jquery unterstützt nicht ersetzen. Dies ist Vanilla js – Jude

0

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

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

Wenn Sie nun nach einer bestimmten Zeichenfolge oder einem bestimmten Zeichen suchen, um den zu extrahierenden Teil der Zeichenfolge zu finden, können Sie auch die indexOf-Funktion verwenden. http://www.w3schools.com/jsref/jsref_IndexOf.asp

Die Frage ist jedoch etwas vage; auch nur link text mit 'name' wird das gewünschte Ergebnis erzielen. Was sind die Kriterien für den Erhalt Ihrer Teilzeichenfolge?

+1

Warum haben Sie in einer Frage zu JavaScript mit der 'strpos'-Funktion von PHP verlinkt? – casablanca

+0

Sie haben Recht, zu viel PHP für mich heute. Ich habe mit dem entsprechenden JS-Äquivalent gearbeitet. Danke, dass du es gefangen hast. – aaronofleonard

2
var name = "nameGorge"; 
name.match(/[A-Z].*/)[0] 
-1

Wie wäre es mit dem Folgenden?

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