395 Stimmen

Wie Teilzeichenfolge vor einem bestimmten Zeichen in JavaScript zu greifen?

Ich versuche, alles zu extrahieren, was vor dem ',' Komma steht. Wie kann ich dies in JavaScript oder jQuery tun? Ich habe dies versucht und nicht funktioniert

1345 albany street, Bellevue WA 42344

Ich möchte nur die Straßenadresse abrufen.

var streetaddress= substr(addy, 0, index(addy, '.'));

21voto

Grant Miller Punkte 23839

Sie können auch Folgendes verwenden shift() .

var streetaddress = addy.split(',').shift();

Laut MDN Web Docs:

Les shift() Methode entfernt die erste Element aus einem Array und gibt das entfernte Element zurück. Diese Methode ändert die Länge des Arrays.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift

13voto

m a Punkte 139

Fast das Gleiche wie die Antwort von David G., aber ohne die anonyme Funktion, falls Sie keine Lust haben, eine solche einzubauen.

s = s.substr(0, s.indexOf(',') === -1 ? s.length : s.indexOf(','));

In diesem Fall machen wir uns die Tatsache zunutze, dass das zweite Argument von substr eine Länge ist, und dass wir wissen, dass unsere Teilzeichenkette bei 0 beginnt.

die beste Antwort ist keine generische Lösung wegen des unerwünschten Verhaltens, wenn die Zeichenkette nicht das gesuchte Zeichen enthält.

Wenn Sie ein korrektes Verhalten in einem allgemeinen Fall wünschen, verwenden Sie diese Methode oder die Methode von David G, nicht die obere Antwort

Regex- und Split-Methoden funktionieren ebenfalls, sind aber möglicherweise etwas langsamer bzw. zu aufwendig für dieses spezielle Problem.

9voto

Gaurav Punkte 27904
var newString = string.substr(0,string.indexOf(','));

8voto

Mira Weller Punkte 2370
var streetaddress = addy.substr(0, addy.indexOf('.')); 

(Sie sollten sich eine Javascript-Tutorial vor allem den Teil über String-Funktionen )

2voto

David G Punkte 4722

Wenn Sie die ursprüngliche Zeichenkette unverändert zurückgeben wollen, wenn sie das Suchzeichen nicht enthält, können Sie eine anonyme Funktion (eine Schließung) verwenden:

var streetaddress=(function(s){var i=s.indexOf(',');
   return i==-1 ? s : s.substr(0,i);})(addy);

Dies kann allgemeiner gestaltet werden:

var streetaddress=(function(s,c){var i=s.indexOf(c);
   return i==-1 ? s : s.substr(0,i);})(addy,',');

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