在trim()之后获取字符串的最后一个字符不起作用

Kha*_*dan 3 javascript

如何从字符串中删除空格,以获取最后一个字符?

const email = "abc@";
const emailWhiteSpace = "abc@ ";
console.log(email.trim()[email.length - 1]) //==> @
console.log(emailWhiteSpace.trim()[emailWhiteSpace.length - 1]) //==> undefinied
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?

Cer*_*nce 5

使用正则表达式可能会更容易-匹配一个非空格字符,然后是空格字符,然后是行尾($):

const lastChar = str => str.match(/(\S)(?=\s*$)/)[1];
console.log(lastChar("abc@"));
console.log(lastChar("abc@ "));
Run Code Online (Sandbox Code Playgroud)

当然,您也可以将修剪后的文本保存在变量中:

const lastChar = str => {
  const trimmed = str.trim();
  return trimmed[trimmed.length - 1];
};
console.log(lastChar("abc@"));
console.log(lastChar("abc@ "));
Run Code Online (Sandbox Code Playgroud)