Получить первое слово строки
Хорошо, вот мой код с подробной информацией о том, что я пытался сделать:
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
}
Так что мне там делать?: \
То, что я хочу получить:
Ответы
Ответ 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);