权利:
我有一个words
字符串,里面有两个单词,我需要返回最后一个单词。他们被“”分开。我该怎么做?
function test(words) {
var n = words.indexOf(" ");
var res = words.substring(n+1,-1);
return res;
}
我被告知要使用indexOf
和substring
,但这不是必需的。任何人有一个简单的方法来做到这一点? (有或没有indexOf
和substring
)
答案 0 :(得分:43)
试试这个:
你可以使用n字长的单词。
示例:
words = "Hello World";
words = "One Hello World";
words = "Two Hello World";
words = "Three Hello World";
所有人都会返回相同的值:“世界”
function test(words) {
var n = words.split(" ");
return n[n.length - 1];
}
答案 1 :(得分:26)
var data = "Welcome to Stack Overflow";
console.log(data.split(" ").splice(-1));
<强>输出强>
[ 'Overflow' ]
即使原始字符串中没有空格也可以,所以你可以直接获得这样的元素
var data = "WelcometoStackOverflow";
console.log(data.split(" ").splice(-1)[0]);
<强>输出强>
WelcometoStackOverflow
答案 2 :(得分:20)
你也可以:
words.split(" ").pop();
只需链接分割函数的结果(数组)并弹出最后一个元素就可以只用一行了:)
答案 3 :(得分:4)
你想要最后一个单词,这表明lastIndexOf
可能比indexOf
更有效。此外,slice
也是 Strings 可用的方法。
var str = 'foo bar fizz buzz';
str.slice(
str.lastIndexOf(' ') + 1
); // "buzz"
请参阅2011年this jsperf,显示 拆分 vs indexOf +切片 vs indexOf + substring 显示lastIndexOf
的{{3}}与indexOf
的效率大致相同,主要取决于匹配发生的时间。
答案 4 :(得分:1)
从接受的答案中添加,如果输入字符串是"Hello World "
(注意末尾的额外空格),它将返回''
。以下代码应该预测用户使用胖子" "
:
var lastWord= function(str) {
if (str.trim() === ""){
return 0;
} else {
var splitStr = str.split(' ');
splitStr = splitStr.filter(lengthFilter);
return splitStr[splitStr.length - 1];
}
};
var lengthFilter = function(str){
return str.length >= 1;
};
答案 5 :(得分:0)
要完成Jyoti Prakash,您可以添加多个分隔符(\s
| ,
)来分割字符串(通过this post)
示例:
function lastWord(words) {
var n = words.split(/[\s,]+/) ;
return n[n.length - 1];
}
注意:正则表达式\s
表示whitespace characters:空格字符,制表符,回车符,换行符,垂直制表符,换页符
var wordsA = "Hello Worlda"; // tab
var wordsB = "One Hello\nWorldb";
var wordsC = "Two,Hello,Worldc";
var wordsD = "Three Hello Worldd";
function lastWord(words) {
var n = words.split(/[\s,]+/);
return n[n.length - 1];
}
$('#A').html( lastWord(wordsA) );
$('#B').html( lastWord(wordsB) );
$('#C').html( lastWord(wordsC) );
$('#D').html( lastWord(wordsD) );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
A:<span id="A"></span><br/>
B:<span id="B"></span><br/>
C:<span id="C"></span><br/>
D:<span id="D"></span><br/>
答案 6 :(得分:0)
/**
* Get last word from a text
* @param {!string} text
* @return {!string}
*/
function getLastWord(text) {
return text
.split(new RegExp("[" + RegExp.quote(wordDelimiters + sentenceDelimiters) + "]+"))
.filter(x => !!x)
.slice(-1)
.join(" ");
}
答案 7 :(得分:0)
最简单的方法是使用切片方法:-
例如:-
let words = "hello world";
let res = words.slice(6,13);
console.log(res);
答案 8 :(得分:-1)
使用split()
function lastword(words){
array = words.split(' ');
return array[1]
}
答案 9 :(得分:-1)
非常直截了当。 你有两个单词用空格分隔。 让我们使用split()方法将字符串分解为数组。 现在你的数组有两个索引为0和1的元素。 使用索引1警告元素。
var str="abc def";
var arr=str.split(" ");
alert(arr[1]);