how to get the last character of a string?

How to get the last character of the string:

"linto.yahoo.com."

The last character of this string is "."

How can I find this?

32 thoughts on “how to get the last character of a string?”

  1. Use the JavaScript charAt function to get a character at a given 0-indexed position. Use length to find out how long the String is. You want the last character so that’s length – 1.
    Example:

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

    The charAt() method returns the character at the specified index in a string.

    You can use this method in conjunction with the length property of a string to get the last character in that string.
    For example:

    const myString = "linto.yahoo.com.";
    const stringLength = myString.length; // this will be 16
    console.log('lastChar: ', myString.charAt(stringLength - 1)); // this will be the string
    Reply
  3. Use substr with parameter -1:

    “linto.yahoo.com.”.substr(-1);

    equals “.”

    Note:

    To extract characters from the end of the string, use a negative start number (This does not work in IE 8 and earlier).

    Reply
  4. You can use this simple ES6 method

    const lastChar = (str) => str.split('').reverse().join(',').replace(',', '')[str.length === str.length + 1 ? 1 : 0];
    
    
    // example
    console.log(lastChar("linto.yahoo.com."));

    This will work in every browsers.

    Reply
  5. You can achieve this using different ways but with different performance,

    1. Using bracket notation:

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

    But it’s not recommended to use brackets. Check the reasons here

    2. charAt[index]:

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

    This is readable and fastest among others. It is most recommended way.

    3. substring:

    str.substring(str.length - 1);

    4. slice:

    str.slice(-1);

    It’s slightly faster than substring.

    You can check the performance here

    With ES6:

    You can use str.endsWith("t");

    But it is not supported in IE. Check more details about endsWith here

    Reply
  6. You can use the following. In this case of last character it’s an overkill but for a substring, its useful:

    var word = "linto.yahoo.com.";
    var last = ".com.";
    if (word.substr(-(last.length)) == last)
    alert("its a match");
    
    Reply
  7. If you have or are already using lodash, use last instead:

    _.last(str);
    

    Not only is it more concise and obvious than the vanilla JS, it also safer since it avoids Uncaught TypeError: Cannot read property X of undefined when the input is null or undefined so you don’t need to check this beforehand:

    // Will throws Uncaught TypeError if str is null or undefined
    str.slice(-1); // 
    str.charAt(str.length -1);
    
    // Returns undefined when str is null or undefined
    _.last(str);
    
    Reply

Leave a Comment