Подтвердить что ты не робот

Получить первое слово строки

Хорошо, вот мой код с подробной информацией о том, что я пытался сделать:

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
}

Так что мне там делать?: \

То, что я хочу получить:

  • firstword[0] даст "Hello"

  • firstword[1] даст "sss"

  • firstword[2] даст "mmm"
4b9b3361

Ответ 1

Разделить снова пробелом:

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

Или используйте String.prototype.substr() (возможно, быстрее):

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

Ответ 2

Используйте регулярное выражение

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

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

$('body').append(firstWord);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Ответ 3

Я использую это:

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

Ответ 4

Как насчет использования underscorejs

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

Ответ 5

Улучшение предыдущих ответов (работа с многострочными строками или строками с вкладками):

String.prototype.firstWord = function(){return this.replace(/\s.*/,'')}

Или используя search и substr:

String.prototype.firstWord = function(){let sp=this.search(/\s/);return sp<0?this:this.substr(0,sp)}

Или без регулярного выражения:

String.prototype.firstWord = function(){
  let sps=[this.indexOf(' '),this.indexOf('\u000A'),this.indexOf('\u0009')].
   filter((e)=>e!==-1);
  return sps.length? this.substr(0,Math.min(...sps)) : this;
}

Примеры:

String.prototype.firstWord = function(){return this.replace(/\s.*/,'')}
console.log('linebreak
example 1'.firstWord()); // -> linebreak
console.log('space example 2'.firstWord()); // -> singleline
console.log('tab	example 3'.firstWord()); // -> tab

Ответ 6

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);
}

Ответ 7

Этот код должен дать вам первое слово,

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]);
 }

Ответ 8

Один из самых простых способов сделать это так

var totalWords = "my name is rahul.";
var firstWord = totalWords.replace(/ .*/, '');
alert(firstWord);
console.log(firstWord);