如何获取字符串的最后一个字符?

时间:2010-10-07 18:21:52

标签: javascript

如何获取字符串的最后一个字符:

"linto.yahoo.com."

此字符串的最后一个字符是"."

我怎样才能找到这个?

14 个答案:

答案 0 :(得分:908)

优雅而简短的替代方法是String.prototype.slice方法。

仅限:

str.slice(-1);

负起始索引将字符串从length+index切换为length,为索引-1,提取最后一个字符:

"abc".slice(-1); // "c";

答案 1 :(得分:85)

使用charAt

  

charAt()方法返回字符串中指定索引处的字符。

您可以将此方法与字符串的length属性结合使用,以获取该字符串中的最后一个字符。
例如:

var myString = "linto.yahoo.com.";
var stringLength = myString.length; // this will be 16
var lastChar = myString.charAt(stringLength - 1); // this will be the string "."

答案 2 :(得分:58)

str.charAt(str.length - 1)

有些浏览器允许(作为非标准扩展程序)将其缩短为:

str[str.length - 1];

答案 3 :(得分:36)

substr与参数 -1

一起使用
  

" linto.yahoo.com" .substr(-1);

等于"。"

注意:

  

要从字符串末尾提取字符,请使用负起始编号(这在IE 8及更早版本中不起作用。)

答案 4 :(得分:34)

您可以使用不同的方式实现这一目标,但性能不同,

<强> 1。使用括号表示法:

var str = "Test"; var lastLetter = str[str.length - 1];

但不建议使用括号。检查原因here

<强> 2。的charAt [指数]:

var lastLetter = str.charAt(str.length - 1)

这是可读的,也是最快的。这是最推荐的方式。

第3。子:

str.substring(str.length - 1);

<强> 4。片

str.slice(-1);

它比子串稍快。

您可以查看效果here

使用ES6:

您可以使用str.endsWith("t");

但IE不支持它。查看有关ends here

的更多详细信息

答案 5 :(得分:13)

一种简单的方法是使用:)

var word = "waffle"
word.endsWith("e")

答案 6 :(得分:7)

你可以得到这样的最后一个字符:

var lastChar=yourString.charAt(yourString.length-1);

答案 7 :(得分:4)

使用JavaScript charAt函数获取给定0索引位置的字符。使用length查找String的长度。你想要最后一个字符,这样长度为1。 例如:

var word = "linto.yahoo.com.";
var last = word.charAt(word.length - 1);
alert('The last character is:' + last);

答案 8 :(得分:4)

var firstName = "Ada";
var lastLetterOfFirstName = firstName[firstName.length - 1];

答案 9 :(得分:1)

您可以使用这种简单的ES6方法

const lastChar = (str) => str.split('').reverse().join(',').replace(',', '')[str.length === str.length + 1 ? 1 : 0];


// example
console.log(lastChar("linto.yahoo.com."));

这将在所有浏览器中使用。

答案 10 :(得分:1)

如果您已经或已经在使用 lodash,请改用 last

<Button onClick={(e)=>(console.log(e)}>Click Me</Button>

它不仅比 vanilla JS 更简洁明了,而且更安全,因为它在输入为 _.last(str); Uncaught TypeError: Cannot read property X of undefined 时避免了 null,因此您无需检查事先:

undefined

答案 11 :(得分:0)

>Try this...     

console.log("linto.yahoo.com.".charAt("linto.yahoo.com.".length-1));

答案 12 :(得分:0)

您可以使用以下内容。在最后一个字符的情况下,这是一个过大的杀伤力,但对于子字符串,它很有用:

var word = "linto.yahoo.com.";
var last = ".com.";
if (word.substr(-(last.length)) == last)
alert("its a match");

答案 13 :(得分:0)

您还可以将字符串转换为数组并获取最后一项,

var str = "Hello world!"; 
var arr = str.split('');
var lastItem = arr[arr.length - 1];