2017-07-20 20 views
10

嗨,对不起,这个简单的问题,但我如何检测字符串中的最后两个单词?如何检测使用Javascript的最后2个单词?

让我们说我有这样的变种:

var sample = "Hello World my first website"; 

我怎样才能获得最后两个单词动力。我试图分裂()弹出,但只有最后一个字是越来越

var testing = sample.split(" ").pop(); 
console.log(testing) 
+5

为什么不能简单地用'pop'两次? – Bergi

回答

25

与试试看:

var testing = sample.split(" ").splice(-2); 

-2需要从给定数组末尾的两个元素。

+0

然后'.join(“”)'返回一个字符串。 – Vic

+0

不需要使用拼接,因为它会再次返回数组。只是'var t = sample.split(“”); var testing = t [t.length -1]; var testing2 = t [t.length -2];'。 –

+9

更好地使用“切片”而不是“拼接” - 你不想改变原始阵列 – Bergi

7

请注意,splice再次提供一个数组并再次访问字符串,您需要使用与直接从拆分数组访问相同的索引。这简直是​​

var words =sample.split(" "); 
var lastStr = words[words.length -1]; 
var lastButStr = words[words.length -2]; 

如果你愿意,你正在做的方式。你几乎在那里。再次弹出()。

pop()方法从数组中删除最后一个元素并返回该元素。此方法更改数组的长度。

var sample = "Hello World my first website"; 
 
var words= sample.split(" "); 
 
var lastStr = words.pop(); // removed the last. 
 
var lastButStr= words.pop(); 
 
console.log(lastStr,lastButStr);

笔记,弹出()删除的元素。并确保你有足够的话。

+0

我没有downvote它先生 – VLR

+1

@VLR没问题。希望你喜欢我的回答。如果它没有评论,我真的不关心downvote。 –

+0

虽然这回答了这个问题,但很高兴看到这些变量的一些更好的名字 –

3

或用正则表达式做,如果你想把它当作一个字符串

var str = "The rain in SPAIN stays mainly in the plain"; 
 
var res = str.match(/[^ ]* [^ ]*$/g); 
 
console.log(res);

+7

舌头脸颊:解决与正则表达式的问题意味着你现在有2个问题:原始问题和正则表达式你需要维护和正确的文件。 – Nzall

+0

正如@jacques marais的回答指出的那样,我可能会避免在空间上分裂来检索单词。 ('how'now。brown cow?')。split('')'=>'[“how”,“now”,“brown”,“cow?”]'vs alphanumeric'('how; (/ \ w +/g)'=>'[“how”,“now”,“brown”,“cow”]'。当然,这有它自己的问题,如unicode特殊字符(例如☃),所以这需要根据实际使用情况进行调整... – BurnsBA

0

试试这个

var sample = "Hello World my first website"; 
 

 
var testing = sample.split(" ").slice(-2); 
 
console.log(testing)

0

你可以也尝试类似:

sample.match(/\w+\W+\w+$/); 
1

var splitted = "Hello World my first website".split(" "); 
 
var testing = splitted.splice(splitted.length - 2); 
 
console.log(testing[0] + " " + testing[1]);

0

试试这个。

var testing = sample.split(" ").splice(-2).join(' '); 
0

首先我们使用分割功能,然后通过拼接,我们可以得到最后的两个词,并通过加入功能串联这两个词拆分字符串。

请检查该

sample.split(" ").splice(-2).join(" "); 
相关问题