как получить последний символ строки?

Как получить последний символ строки:

"linto.yahoo.com."

Последний символ этой строки"."

Как я могу найти это?

 Sharku22 окт. 2018 г., 15:28
не могли бы вы принятьэтот ответ, так как он самый лучший и должен отображаться первым.

Ответы на вопрос(12)

Вы можете достичь этого, используя разные способы, но с разной производительностью,

1. Используя скобки:

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

Но не рекомендуется использовать скобки. Проверьте причиныВот

2. charAt [index]:

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

Это читабельно и быстро среди других. Это наиболее рекомендуемый способ.

3. подстрока:

str.substring(str.length - 1);

4. ломтик:

str.slice(-1);

Это немного быстрее, чем подстрока.

Вы можете проверить производительностьВот

Простой способ сделать это с помощью этого :)

var word = "waffle"
word.endsWith("e")
 Julian05 нояб. 2018 г., 15:58
Красиво и просто +1
 sanjsanj07 нояб. 2018 г., 10:59
Действительно хорошее дополнение к ES6, но оно не работает в IE, если вам нужно его поддерживать, это может бытьpolyfilled хоть.
>Try this...     

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

Элегантная и короткая альтернатива, этоString.prototype.slice метод.

Просто:

str.slice(-1);

Отрицательный начальный индекс разрезает строку изlength+index, чтобыlength, будучи индексом-1, последний символ извлекается:

"abc".slice(-1); // "c";
 Yaron Levi03 сент. 2016 г., 01:04
Этот код может быть коротким и «сексуальным», но я не буду его использовать. Код не требует пояснений и не понятен. Используйте вместо этого charAt.
 Peter Ajtai07 окт. 2010 г., 21:08
Примечание: массивы также имеютslice() метод. - Их функциональные возможности концептуально схожи (частичные копии) -------- (на тот случай, если вы читаете код и видите.slice())
 Felipe Almeida26 апр. 2013 г., 02:45
Это работает и для строк UTF-8?
 stack26 янв. 2016 г., 23:14
Ну и как мне получить позицию лазера?"abc " Теперь мне нужно получить4 (в конце есть пробел), Как мне это сделать?
 CMS03 мар. 2014 г., 16:20
@ Яйцо, кажется, ты не пробовал мой пример,str.slice(-1) действительно получает последний символ строки (как требуется OP), как если бы вы использовалиstr.charAt(str.length - 1), пытаться:"abc".slice(-1), Я показывал здесь использованиеString.prototype.slice с отрицательным индексом.str.slice(-n) получит последнийn символы исходной строки в качестве нового строкового значения. Больше информации:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
 Liggliluff03 сент. 2016 г., 18:13
@stack Позиция (считая от 1) последнего символа должна быть длиной строки, в основном.length Я не уверен, как он справляется с суррогатными парами.
 gregtczap03 мар. 2014 г., 03:08
Проголосовал, потому что это не отвечает на вопрос. Предполагается, что пользователь хочет просто удалить символ, но что, если вам нужно захватить последний символ и ответить на основании того, что это такое? Ответы str.charAt () являются правильными.
 Ray Toal15 дек. 2013 г., 19:56
Что вы подразумеваете под "строкой UTF-8"? Фраза не имеет смысла. Впрочем, строки JavaScript сами по себе - забавные звери: они представляют собой последовательности беззнаковых 16-битных целочисленных значений. Если ваша строка предназначена для хранения символов, то приведенный выше код возвращает последнее 16-битное значение, что было бы не красиво, если бы это была вторая часть суррогатной пары. Но опять же, что именно вы подразумеваете под "строкой UTF-8"? UTF-8 - это схема кодирования, которая может иметь смысл, если у вас есть байтовый массив, но ничего не значит, когда дело касается строк. Просто любопытно.
 gregtczap04 мар. 2014 г., 21:00
@CMS Вы правы, ваш метод действительно захватывает последний символ строки, не обрезая его. Хороший элегантный метод тоже. По некоторым причинам я думал, что это собиралось урезать те символы и вернуть урезанную последовательность. Извините за это, я чувствую себя идиотом за то, что не попробовал это первым.

Вы можете использовать следующее. В этом случае последний символ - это перебор, но для подстроки это полезно:

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

использование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 "."
 Joaolvcm06 мар. 2014 г., 16:47
var firstName = "Ada";
var lastLetterOfFirstName = firstName[firstName.length - 1];
 kayess22 нояб. 2016 г., 11:55
Хотя этот фрагмент кода может решить вопрос,в том числе объяснение действительно помогает улучшить качество вашего поста. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код. Также постарайтесь не переполнять ваш код пояснительными комментариями, это снижает удобочитаемость кода и пояснений!

Вы можете получить последний символ следующим образом:

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

Некоторые браузеры позволяют (как нестандартное расширение) сократить это до:

str[str.length - 1];

Используйте JavaScriptШара функция, чтобы получить символ в заданной 0-индексированной позиции. использованиедлина чтобы узнать, какова длина строки. Вы хотите, чтобы последний символ был длиной - 1. Пример:

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

Вы можете использовать этот простой метод ES6

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


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

Это будет работать во всех браузерах.

использованиезиЬзЬг с параметром-1:

"Linto.yahoo.com." ЗиЬзЬги (-1).

равно "."

Замечания:

Чтобы извлечь символы из конца строки, используйте отрицательный начальный номер (это не работает в IE 8 и более ранних версиях).

 stramin04 мая 2016 г., 15:14
Кажется, что этот короче, чем slice (), интересно, какой из них лучше и быстрее.

Ваш ответ на вопрос