获得字符串的第一个单词

好的,下面是我的代码和我尝试做的细节:

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"
163583 次浏览

再用空格分割:

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

或者使用 Prototype.subr ()(可能更快) :

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

这个代码应该能让你读到第一个单词,

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

我用这个:

function getFirstWord(str) {
let spaceIndex = str.indexOf(' ');
return spaceIndex === -1 ? str : str.substring(0, spaceIndex);
};

使用下划线怎么样

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

使用 正则表达式

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>

对以前答案的改进(使用多行或选项卡式字符串) :

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

使用 searchsubstr:

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

在现代的 JS 中,这是简化的,你可以这样写:

const firstWords = str =>
str .split (/\|/) .map (s => s .split (/\s+/) [0])


const str = "Hello m|sss sss|mmm ss"


console .log (firstWords (str))

我们首先在 |上分割字符串,然后在任何空白处分割结果数组中的每个字符串,只保留第一个字符串。

我很惊讶没有提到这个方法: "Some string".split(' ').shift()


直接回答这个问题:

let firstWords = []
let str = "Hello m|sss sss|mmm ss";
const codeLines = str.split("|");


for (var i = 0; i < codeLines.length; i++) {
const first = codeLines[i].split(' ').shift()
firstWords.push(first)
}
const getFirstWord = string => {
const firstWord = [];
for (let i = 0; i < string.length; i += 1) {
if (string[i] === ' ') break;
firstWord.push(string[i]);
}
return firstWord.join('');
};
console.log(getFirstWord('Hello World'));

或者简化它:

const getFirstWord = string => {
const words = string.split(' ');
return words[0];
};
console.log(getFirstWord('Hello World'));

对于 得到字符串的第一个单词,你可以这样做:

let myStr = "Hello World"
let firstWord = myStr.split(" ")[0]
console.log(firstWord)

split(" ")将把字符串转换成一个单词数组(使用空格作为分隔符对字符串进行分隔后产生的子字符串) ,然后您可以用[0]获得访问第一个数组元素的第一个单词。

了解更多关于 分割法的信息。

这个代码应该能让你读到第一个单词,

const myName = 'Jahid Bhuiyan';
console.log(myName.slice(0, myName.indexOf(' ')));

Ans 将是“ Jahid”