2013-09-01 37 views
21

Okey đây là mã của tôi với các chi tiết về những gì tôi đã cố gắng để làm:Nhận từ đầu tiên của chuỗi

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 
     } 

Vì vậy, những gì tôi nên làm đó: \ gì tôi muốn có được firstword là [0] sẽ cung cấp cho "Xin chào" và firstword [1] sẽ cung cấp cho "sss" và firstword [2] sẽ cung cấp cho "mmm"

Trả lời

29

chia lại bằng một khoảng trắng:

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

Hoặc sử dụng String.prototype.substr() (có thể nhanh hơn):

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

Không làm việc: s http://jsbin.com/umeqi4/17 –

+0

@SasukeKun Bạn quên a 's' trong' firstWords' sau * cho * loop: http: // jsbin .com/umeqi4/19/ – ComFreek

+3

Vâng, có vẻ như 'String.prototype.substr()' hơi nhanh hơn: http://jsperf.com/get-first-word-of-string – Benj

2

Mã này sẽ giúp bạn có những từ đầu tiên,

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

Tôi đang sử dụng này:

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

Bạn gọi indexOf hai lần. Để có hiệu suất cache tốt hơn. – dimon4eg

4

Làm thế nào về việc sử dụng underscorejs

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

Sử dụng biểu thức chính quy

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

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

console.log(firstWord); 
+0

Câu trả lời đơn giản nhất. +1 –

Các vấn đề liên quan