2013-09-01 17 views
21

Okey ecco il mio codice con dettagli di ciò che ho cercato di fare:Get prima parola della stringa

var str = "Hello m|sss sss|mmm ss" 
//Now i separate them by "|" 
    var str1 = str.split('|'); 

//Now i want to get the first word of every split-ed sting parts: 

     for (var i=0;i<codelines.length;i++) 
     { 
    //What to do here to get the first word of every spilt 
     } 

Quindi, che cosa devo fare c'è: \ Quello che voglio ottenere è FirstWord [0] darà "Ciao" e FirstWord [1] darà "sss" e FirstWord [2] darà "mmm"

risposta

29

nuovo Split da uno spazio bianco:

var firstWords = []; 
for (var i=0;i<codelines.length;i++) 
{ 
    var words = codelines[i].split(" "); 
    firstWords.push(words[0]); 
} 

Oppure utilizzare String.prototype.substr() (probabilmente più veloce):

var firstWords = []; 
for (var i=0;i<codelines.length;i++) 
{ 
    var codeLine = codelines[i]; 
    var firstWord = codeLine.substr(0, codeLine.indexOf(" ")); 
  firstWords.push(firstWord); 
} 
+0

Non funziona: s http://jsbin.com/umeqi4/17 –

+0

@SasukeKun Hai dimenticato una 's' in' firstWords' dopo l'* per * ciclo: http: // jsbin .com/umeqi4/19/ – ComFreek

+3

Sì, sembra che 'String.prototype.substr()' sia leggermente più veloce: http://jsperf.com/get-first-word-of-string – Benj

2

Questo codice dovrebbe ottenere la prima parola,

var str = "Hello m|sss sss|mmm ss" 
//Now i separate them by "|" 
var str1 = str.split('|'); 

//Now i want to get the first word of every split-ed sting parts: 

for (var i=0;i<str1.length;i++) 
{ 
    //What to do here to get the first word :(
    var words = str1[i].split(" "); 
    console.log(words[0]); 
} 
3
var str = "Hello m|sss sss|mmm ss" 
//Now i separate them by "|" 
var str1 = str.split('|'); 

//Now i want to get the first word of every split-ed sting parts: 

for (var i=0;i<str1.length;i++) 
{ 
    //What to do here to get the first word :) 
    var firstWord = str1[i].split(' ')[0]; 
    alert(firstWord); 
} 
10

Sto utilizzando questo:

function getFirstWord(str) { 
     let spacePosition = str.indexOf(' '); 
     if (spacePosition === -1) 
      return str; 
     else 
      return str.substr(0, spacePosition); 
    }; 
+1

Chiama indexOf due volte. Per prestazioni migliori, memorizzalo nella cache. – dimon4eg

4

Come sull'utilizzo underscorejs

str = "There are so many places on earth that I want to go, i just dont have time. :(" 
firstWord = _.first(str.split(" ")) 
12

Usa espressione regolare

var totalWords = "foo love bar very much."; 

var firstWord = totalWords.replace(/ .*/,''); 

console.log(firstWord); 
+0

La risposta più semplice. +1 –

Problemi correlati