Javascript:返回字符串中的最后一个单词
权利: 我有一个Javascript:返回字符串中的最后一个单词,javascript,string,substring,Javascript,String,Substring,权利: 我有一个words字符串,其中有两个单词,我需要返回最后一个单词。它们由一个“”分隔。我该怎么做 function test(words) { var n = words.indexOf(" "); var res = words.substring(n+1,-1); return res; } 我被告知要使用indexOf和substring,但这不是必需的。有人有简单的方法吗?(带或不带索引of和子字符串) 输出 [ 'Overflow' ] WelcometoStackOv
words
字符串,其中有两个单词,我需要返回最后一个单词。它们由一个“”分隔。我该怎么做
function test(words) {
var n = words.indexOf(" ");
var res = words.substring(n+1,-1);
return res;
}
我被告知要使用indexOf
和substring
,但这不是必需的。有人有简单的方法吗?(带或不带索引of
和子字符串
)
输出
[ 'Overflow' ]
WelcometoStackOverflow
即使原始字符串中没有空格,也可以这样做,因此可以直接获得如下元素
var data = "WelcometoStackOverflow";
console.log(data.split(" ").splice(-1)[0]);
输出
[ 'Overflow' ]
WelcometoStackOverflow
使用split()
试试这个:
您可以使用n字长的单词
例如:
words = "Hello World";
words = "One Hello World";
words = "Two Hello World";
words = "Three Hello World";
所有这些都将返回相同的值:“世界”
您想要的是最后一个字,这表明它可能比indexOf
更有效。此外,也是一种可用于字符串的方法
从2011年开始,显示了分割vs索引+切片vs索引+子字符串,显示了
lastIndexOf
与indexOf
的效率大致相同,这主要取决于匹配发生的时间。要完成Jyoti-Prakash,您可以添加多个分隔符(\s
|,
)拆分字符串(通过)
例如:
function lastWord(words) {
var n = words.split(/[\s,]+/) ;
return n[n.length - 1];
}
注:regex\s
表示:空格字符、制表符、回车符、换行符、垂直制表符、换行符
一小条
var wordsA=“Hello Worlda”//选项卡
var wordsB=“一个Hello\nWorldb”;
var wordsC=“你好,Worldc”;
var wordsD=“三个Hello Worldd”;
函数lastWord(单词){
var n=words.split(/[\s,]+/);
返回n[n.length-1];
}
$('A').html(lastWord(wordsA));
$('#B').html(lastWord(wordsB));
$('#C').html(lastWord(wordsC));
$('#D').html(lastWord(wordsD));
答:
B:
C:
D:
您还可以:
words.split(" ").pop();
只需链接split函数的结果(数组)并弹出最后一个元素,就可以在一行中完成这项任务:)这非常简单。 你有两个用空格隔开的单词。 让我们使用split()方法将字符串拆分为数组。 现在,数组有两个索引为0和1的元素。 用索引1警告元素
var str="abc def";
var arr=str.split(" ");
alert(arr[1]);
从接受的答案中添加,如果输入字符串是
“Hello World”
(注意末尾的额外空格),它将返回'
。下面的代码应该是在用户胖手指的情况下使用的:
最简单的方法是使用切片法:- 例如:-
let words = "hello world";
let res = words.slice(6,13);
console.log(res);
语句.split(“”).slice(-1)
lastIndexOf
和slice
!我不明白。你已经解决了问题中的问题。你希望我们做什么?@Blender发布一个答案。@GrijeshChauhan:这不是一个有趣的问题。简短、干净、没有混乱、没有麻烦。可以用pop()替换拼接(-1)[0]。你必须修剪()一个拖尾空格,这是很久以前的炸弹。。但是..如果要删除单词之间的任何额外空格,请改用:data.split(/\s+/).splice(-1))代码>虽然此代码可以回答问题,但提供有关此代码回答问题的原因和/或方式的附加上下文可提高其长期价值。请注意,这不适用于结尾带有空格的字符串(“Hello World”)。拆分(“”)代码>返回<代码>[“你好”,“世界”,“你”]
。其中“最后一个单词”将是”
。可以使用words.trim().split(“”)代码>我会使用words.split,因为你不需要知道空格的位置。你给了自己更多的工作。
var str="abc def";
var arr=str.split(" ");
alert(arr[1]);
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;
};
/**
* 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(" ");
}
let words = "hello world";
let res = words.slice(6,13);
console.log(res);