Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:返回字符串中的最后一个单词_Javascript_String_Substring - Fatal编程技术网

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