Javascript 如何在jquery中剪切字符串的最后一个字符?

Javascript 如何在jquery中剪切字符串的最后一个字符?,javascript,jquery,Javascript,Jquery,假设我有 var name=“kanishka” 我如何只剪切最后一个字符,使输出为“a” 我读了这个问题 我如何从一个文件中剪切第一个字符 jquery中的字符串 金勇 在这个问题上,我知道问题的长度 绳子。你能告诉我怎么做吗 在不知道字符串的情况下执行此操作 长度 无法从答案中获得帮助,请使用普通javascript进行帮助,您可以这样做 name = name.substr(name.length-1,name.length); name.charAt(name.length-1) 有

假设我有

var name=“kanishka”

我如何只剪切最后一个字符,使输出为“a”

我读了这个问题

我如何从一个文件中剪切第一个字符 jquery中的字符串

金勇

在这个问题上,我知道问题的长度 绳子。你能告诉我怎么做吗 在不知道字符串的情况下执行此操作 长度


无法从答案中获得帮助,请使用普通javascript进行帮助,您可以这样做

name = name.substr(name.length-1,name.length);
name.charAt(name.length-1)
有关charAt的更多信息

^_^

或者如果你想变得无聊:

name.substr(name.length-1);
或:

或:

或:

或:

或者(好吧,这些都很严重):

如果你想要“迦腻色迦”中的“a”:


一种简洁、简短的跨浏览器方式是

name.slice(-1);

您的选择综述如下所示:
(请注意,这是CW答案,因为它代表社区内容)

  • 子字符串

    var lastChar = name.substring(name.length - 1);
    
    • 冗长,但清晰
    • 得到广泛支持。

  • substr

    var lastChar = name.substr(name.length - 1);
    
    • 冗长的(想得稍微少一点),但很清楚
    • 广泛支持(虽然不是严格的标准,并且某些浏览器存在边缘情况;请参阅注释)。

  • 切片

    var lastChar = name.slice(-1);
    
    • 一旦你习惯了这个习语,你就会变得简洁、清晰,但对非l33t c0d3rz来说就不清楚了
    • 得到广泛支持
    • 在大多数浏览器(但不是所有浏览器)上,速度往往较慢或最慢。

  • charAt

    var lastChar = name.charAt(name.length - 1);
    
    • 冗长,但非常清楚
    • 得到广泛支持
    • 在大多数浏览器上最快(或与
      []
      )并列最快(通常以公平的优势)。

  • []

    var lastChar = name[name.length - 1];
    
    • 简洁明了
    • 不受IE7及更早版本的支持
    • 在大多数浏览器上最快(或与charAt并列为最快)(通常以公平的差距)
  • (考虑到克沃尔夫的出击,我像我这样乏味的笨人一样,坚持主流。)


    你应该用哪一种?这完全取决于你。请注意,上述所有选项都非常快,在99.999%的实际情况下,此操作的速度实际上非常重要的几率非常低。

    他想要的是最后一个字符,而不是最后一个字符之前的字符串!:)你想要什么:
    name.substr(name.length-1)
    答案中的
    -2
    是怎么回事?这会给你“ka”@cwolves:这是一个打字错误,显然你在我修复它之前就看到了。:-)点击按钮aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1.当然,假设字符串是一个数组,你甚至可以做
    name[name.length-1]
    @OJ:为什么你认为
    substring()
    除了比
    charAt()
    长几个字符之外,还不如
    charAt()?顺便说一句,在ECMAScript 5之前,通过数字属性名访问字符串中的字符是非标准的,在IE 7或更早版本(不确定IE 8)中不受支持。@Tim:
    []
    在IE8中受支持。不像你说的,在IE7或更早的版本中@OJ:字符串不是数组
    String
    在现代浏览器上支持
    []
    ,但它仍然不是一个数组。它们都很无聊,因为你可以直接从数组中提取一个字符,避免你建议的所有开销。@OJ-什么,不喜欢我不必要的开销(@OJ:如果你不关心IE6和IE7的支持,你只能使用
    []
    。(IE6+IE7占浏览器用户的10-20%,谢天谢地,这个数字正在迅速下降,但仍然很重要)。@TJ是的,伙计,你说得对。那些浏览器都是PITA。我个人拒绝支持这么旧的浏览器(后面的两个主要版本号只是一个笑话,IE10离我们不远了)。让我们把让人们进行更新作为我们的职责:)很好:-)奇怪的是,在一些浏览器上这往往是一个缓慢的选择(这并不重要),我想不出为什么。请参阅CW post对选项进行四舍五入。
    substr()
    不是严格的标准,尽管正如您所说,它得到了广泛的支持。它在IE 7中的实现与其他浏览器略有不同(同样,也不确定是8还是9),因为负字符索引被视为0,而不是从长度中减去。@TIm:嘿,看看这个。它不在主要规范中,但在其附录中(准确地说,是B.2.3,第3版和第5版)。难怪我从不使用
    substr
    :-)J.:
    slice()
    是JS中子字符串的位置。它是标准的,具有l33t c0d3rz的负偏移量,并得到普遍支持。
    name[name.length-1];
    
    var name = "kanishka";
    name = name.substring(name.length - 1);
    
    name.slice(-1);
    
    var lastChar = name.substring(name.length - 1);
    
    var lastChar = name.substr(name.length - 1);
    
    var lastChar = name.slice(-1);
    
    var lastChar = name.charAt(name.length - 1);
    
    var lastChar = name[name.length - 1];