如何选择字符串的最后两个字符


193

我需要从变量中选择最后两个字符,无论是数字还是字母。

例如:

var member = "my name is Mate";

我想显示member变量中字符串的最后两个字母。

Answers:



23

尝试此操作,请注意,您无需在中指定结束索引substring

var characters = member.substr(member.length -2);

您最初的答案可能更合适。根据MDN的substr文档“ Microsoft的JScript不支持起始索引的负值。”

23

编辑:2020:使用 string.slice(-2)其他人说的-见下文。

现在2016 string.substr(-2)应该可以解决问题(而不是子字符串(!))

取自MDN

句法

str.substr(start[, length])

参量

开始

开始提取字符的位置。如果给定负数,则将其视为strLength + start,其中strLength是字符串的长度(例如,如果start为-3,则将其视为strLength-3。)length可选。要提取的字符数。

编辑2020

MDN说

警告:尽管String.prototype.substr(…)并未严格弃用(如“从Web标准中删除”),但它被认为是旧函数,应尽可能避免使用。它不是JavaScript核心语言的一部分,将来可能会删除。


1
“ Microsoft的JScript不支持起始索引的负值。要在JScript中使用此功能,可以使用以下代码...”- developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/…(而切片则没有任何
polyfill

请注意,JScript不在浏览器内部,它是主要用于Windows Script Host自动化的脚本语言(类似于VBScript),因此在当时尚不包含此类方法是合乎逻辑的。神秘的语法。但无论如何,意见是片上比在JScript的情况下SUBSTR更合适的人选,因为它支持负指数docs.microsoft.com/en-us/previous-versions/windows/...
乔治Birbilis

9

以下示例slice()与否定索引一起使用

var str = 'my name is maanu.';
console.log(str.slice(-3));     // returns 'nu.' last two
console.log(str.slice(3, -7)); // returns 'name is'
console.log(str.slice(0, -1));  // returns 'my name is maanu'


5

你可以试试

member.substr(member.length-2);

您从起始索引中错过了member.length :)
mattytommo'5


1
@TJCrowder:可以肯定,负索引作为起始位置不适用于IE8及更低版本。

1
@amnotiam:谢谢,非常高兴知道!我刚刚进行了测试,并且肯定地说,它不适用于IE7或IE8(因此大概不适用于IE6)。标准模式下的IE9很好(但不兼容)。我从不使用过substr,现在我希望我可以找到一些自鸣得意的线程使我为此感到困难的线程(尤其是不使用负索引)-现在,我可以证明这一点!:-)
TJ Crowder 2012年


2

您应该使用子字符串而不是jQuery来执行此操作。

尝试这样的事情:

member.substring(member.length - 2, member.length)

W3Schools(不是官方的,但偶尔会有帮助):http : //www.w3schools.com/jsref/jsref_substring.asp

根据评论者的要求添加MDN链接:https : //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring


3
请提供指向MSDN或MDN等官方文档的链接,而不是w3fools :)
jbabey 2012年

w3schools不是“官方”的,但通常具有可靠的信息。MSDN是官方的,但特定于IE,并且与Firefox,Safari等无关
Matt

在您发布此内容时,在评论中添加了链接
Matt

1
var member = "my name is maanu";

var answer=member.substring(0,member.length - 2);

alert(answer);

1
该代码做什么?请写一个关于这样做的解释。
DNKROZ 2014年

3
公平地讲,问题是关于代码需要做什么的非常具体的问题,因此,从本质上讲,由一行代码组成的答案是不言而喻的。
anaximander 2014年

1
代码输出将为'nu'。从单词中取出最后2个字符。
Biju的2014年

7
在我看来,代码输出将是“我的名字叫maa”(除了最后两个字母之外的所有内容),如果我正确理解的话,这不是问题所要的。
ewino'3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.