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

例如:

var member = "my name is Mate";

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


当前回答

尝试一下,注意你不需要在子字符串中指定结束索引。

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

其他回答

您应该使用substring,而不是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

var member = "my name is maanu";

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

alert(answer);

Slice可以用来查找子字符串。当我们知道索引时,我们可以使用另一种解决方案,如索引明智加法器。两人执行死刑的时间大致相同。

const primitiveStringMember = "my name is Mate"; const objectStringMember = new String("my name is Mate"); console.log(typeof primitiveStringMember);//string console.log(typeof objectStringMember);//object /* However when we use . operator to string primitive type, JS will wrap up the string with object. That's why we can use the methods String object type for the primitive type string. */ //Slice method const t0 = performance.now(); slicedString = primitiveStringMember.slice(-2);//te const t1 = performance.now(); console.log(`Call to do slice took ${t1 - t0} milliseconds.`); //index vise adder method const t2 = performance.now(); length = primitiveStringMember.length neededString = primitiveStringMember[length-2]+primitiveStringMember[length-1];//te const t3 = performance.now(); console.log(`Call to do index adder took ${t3 - t2} milliseconds.`);

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

现在2016年只需string.substr(-2)就可以了(不是substring(!))

取自MDN

语法 str.substr(启动[,]) 参数 开始 开始提取字符的位置。如果给出的是负数,它将被视为strLength + start, strLength所在的位置 字符串的长度(例如,如果start是-3,它将被视为 strLength - 3.)长度 可选的。要提取的字符数。

编辑2020

MDN说

警告:虽然String.prototype.substr(…)不是严格的 已弃用(如“从Web标准中删除”),它被考虑 遗留函数,应该尽可能避免使用。它不是一部分 核心JavaScript语言的一部分,将来可能会被移除。

你可以给.slice()传递一个负索引。这将指示从集合的末尾开始的偏移量。

var member = "my name is Mate";

var last2 = member.slice(-2);

alert(last2); // "te"