2017-02-02 4 views
0

Ich habe eine Zeichenkette, die ein oder zwei Wörter wie das sein kann:Gibt es eine einfache Möglichkeit, eine aus zwei Wörtern bestehende Zeichenkette in eine zu reduzieren?

var str = "John Smith" 
var str = "John" 

Ich weiß, ich Split verwenden könnte dies in einem Array zu unterteilen und dann die Ausgabe des ersten Elements des Arrays zugeordnet werden. Gibt es jedoch einen einfacheren Ein-Weg-Weg, den ich nur das erste Wort extrahieren kann?

+1

'var str = "John Smith" .split (‘ ‚) [0]', verwendet einfach Ihren Ansatz in einzelne Zeile – Satpal

+1

Oder eine Regex: 'var str =" John Smith ".match (/^\ s * ([a-zA-Z0-9] +) /) [0];' https://jsfiddle.net/ 6m02mkhg/ – briosheje

Antwort

1
var str = "John Smith"; 
var str = str.substr(0, str.indexOf(' ')) 
+0

Nun, dieser Weg ist schneller zu vergleichen. Aber hier ist ein Haken, es wird davon ausgegangen, dass der Name mehr als ein Wort enthält. Wenn es ein Wort gibt ("John"), dann ist die Ausgabe eine leere Zeichenfolge (""). –

0

einfach genug

> x = "Alley Halley" 
'Alley Halley' 
> x.split(" ")[0] 
'Alley' 
> x = "Alley" 
'Alley' 
> x.split(" ")[0] 
'Alley' 

oder als Funktion

> firstBeforeSpace = function(str) { return str.split(" ")[0]; } 
[Function] 
> firstBeforeSpace("Halley") 
'Halley' 
> firstBeforeSpace("Halley Alley") 
'Halley' 
> firstBeforeSpace("Walley Halley Alley") 
'Walley' 
> x = "halley Alley Walley" 
'halley Alley Walley' 
> x.split(" ")[0] 
'halley' 
> 
Verwandte Themen