258

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

例如:

var member = "my name is Mate";

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

4

10 回答 10

551

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

var member = "my name is Mate";

var last2 = member.slice(-2);

alert(last2); // "te"
于 2012-05-24T16:54:09.160 回答
28

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

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

取自 MDN

句法

str.substr(start[, length])

参数

开始

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

编辑 2020

MDN 说

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

于 2016-04-11T13:13:01.730 回答
25

试试这个,注意你不需要在substring.

var characters = member.substr(member.length -2);
于 2012-05-24T16:52:26.937 回答
15

以下示例使用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'

于 2018-03-20T23:39:22.807 回答
8

你可以试试

member.substr(member.length-2);
于 2012-05-24T16:51:28.990 回答
3

如果它是一个整数,你需要......

var result = number.toString().slice(-2);
于 2017-12-13T13:50:23.920 回答
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

于 2012-05-24T16:53:46.653 回答
2

最短:

str.slice(-2)

例子:

const str = "test";
const last2 = str.slice(-2);

console.log(last2);

于 2020-09-19T12:39:08.460 回答
1
var member = "my name is maanu";

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

alert(answer);
于 2014-06-19T11:38:25.477 回答
1

切片可用于查找子字符串。当我们知道索引时,我们可以使用诸如索引加法器之类的替代解决方案。两者的执行时间大致相同。

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-12-09T14:59:01.550 回答