Javascript 如何获取字符串的最后一个字符

Javascript 如何获取字符串的最后一个字符,javascript,Javascript,我有 使用JavaScript,如何获取最后五个字符或最后一个字符?查看 要获取最后一个字符,请执行以下操作: var id="ctl03_Tabs1"; 编辑:正如其他人所指出的,使用slice(-5)而不是substr但是,另一种方法请参见此答案底部的.split().pop()解决方案 原始答复: 您需要将Javascript字符串方法.substr()与.length属性结合使用 id.substring(id.length - 1, id.length); 这将获取从id.leng

我有

使用JavaScript,如何获取最后五个字符或最后一个字符?

查看

要获取最后一个字符,请执行以下操作:

var id="ctl03_Tabs1";

编辑:正如其他人所指出的,使用
slice(-5)
而不是
substr
但是,另一种方法请参见此答案底部的
.split().pop()
解决方案

原始答复:

您需要将Javascript字符串方法
.substr()
.length
属性结合使用

id.substring(id.length - 1, id.length);
这将获取从id.length-5开始的字符,并且由于省略了.substr()的第二个参数,因此将继续到字符串的末尾

您还可以使用
.slice()
方法,其他人在下面已经指出了这一点

如果只是查找下划线后面的字符,可以使用以下方法:

var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"

这将字符串拆分为下划线上的数组,然后从数组中“弹出”最后一个元素(即您想要的字符串)。

获取最后一个字符很容易,因为您可以将字符串视为数组:

var tabId = id.split("_").pop(); // => "Tabs1"
要获取字符串的一部分,可以使用函数或函数:

var lastChar = id[id.length - 1];

substr
substring
之间的区别在于如何处理第二个(可选)参数。在
substr
中,它是索引中的字符数(第一个参数)。在
子字符串中,它是字符切片结束位置的索引。

以下脚本显示了使用JavaScript获取字符串中最后5个字符和最后1个字符的结果:

id.substr(id.length - 1); //get the last character
id.substr(2);             //get the characters from the 3rd character on
id.substr(2, 1);          //get the 3rd character
id.substr(2, 2);          //get the 3rd and 4th characters
输出:

Tabs1//有5个字符

1//获得1个字符

不要使用
.substr()
。请改用
.slice()
方法,因为它是跨浏览器兼容的(请参见IE)

const id=“ctl03\u Tabs1”;
log(id.slice(id.length-5))//输出:表1

log(id.slice(id.length-1))//输出:1
无需使用
substr
方法获取字符串的单个字符

以Jamon Holmgren为例,我们可以更改substr方法,只需指定数组位置:

var testword='ctl03_Tabs1';
var last5=testword.substr(-5); //Get 5 characters
var last1=testword.substr(-1); //Get 1 character

如果逗号是字符串中的最后一个字符,则此命令将删除该逗号

var id = "ctl03_Tabs1";
var lastChar = id[id.length - 1]; // => "1"

实际上,我有以下问题,这就是我如何通过上面的答案解决它的,但从输入元素中提取id的不同方法

我已附上一份输入文件

var str = $("#ControlId").val();

if(str.substring(str.length-1)==',') {

  var stringWithoutLastComma = str.substring(0,str.length-1);    

}
可以使用起始位置为负数的来检索最后n个字符。例如,这将得到最后5个:

 $('.rating').on('rating.change', function() {
            alert($(this).val());
           // console.log(this.id);
           var static_id_text=("rating_element-").length;       
           var product_id =  this.id.slice(static_id_text);       //get the length in order to deduct from the whole string    
          console.log(product_id );//outputs the last id appended
        });
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1);

假设将子字符串与另一个字符串的结尾进行比较,并将结果用作布尔值,则可以扩展string类来完成此操作:

var lastFiveChars = id.substr(-5);
允许您执行以下操作:

String.prototype.endsWith = function (substring) {
  if(substring.length > this.length) return false;
  return this.substr(this.length - substring.length) === substring;
};

如果您只想知道最后一个字符或任何字符的位置,您可以简单地将字符串转换为数组字符串在javascript中是可迭代的-

var aSentenceToPonder = "This sentence ends with toad"; 
var frogString = "frog";
var toadString = "toad";
aSentenceToPonder.endsWith(frogString) // false
aSentenceToPonder.endsWith(toadString) // true
然而,如果您需要不止一个字符,那么使用拼接是有效的

Var x = "hello_world";
 x[0];                    //h
 x[x.length-1];   //d
关于你的例子

x.slice(-5);      //world
这将返回id,如果“rating_element”之后没有id,则返回未定义的id :)

我发现了这个问题,通过一些研究,我发现这是获得最后一个角色的最简单方法

var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)
如其他人所述,为了完整起见,增加了最后5项:

 $('.rating').on('rating.change', function() {
            alert($(this).val());
           // console.log(this.id);
           var static_id_text=("rating_element-").length;       
           var product_id =  this.id.slice(static_id_text);       //get the length in order to deduct from the whole string    
          console.log(product_id );//outputs the last id appended
        });
var id="ctl03_Tabs1";
var res = id.charAt(id.length-1);

一种方法是使用
切片
,如下所示:

var last5 = id.substr(-5);

所以
temp
的值应该是
“Tabs1”

,我确信这会起作用

var id="ctl03_Tabs1";
var temp=id.slice(-5);

扩展名
的值将为
“.pdf”

Substr函数允许您使用减号获取最后一个字符

var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)
它非常灵活。 例如:

var string = "hello";
var last = string.substr(-1);
最后5
var id=“ctl03\u Tabs1”;
var res=id.charAt(id.length-5)

警报(res)
要获取字符串的最后一个字符,可以使用
拆分(“”).pop()
函数

// Get 2 characters, 1 character from end
// The first part says how many characters
// to go back and the second says how many
// to go forward. If you don't say how many
// to go forward it will include everything
var string = "hello!";
var lasttwo = string.substr(-3,2);
// = "lo"

这是因为当
split(“”)
函数的参数为空(“”)时,字符串的每个字符都会更改为数组的一个元素。因此,我们可以使用
pop()

var string1="myfile.pdf"
var esxtenion=string1.substr(string1.length-4)
var id=“ctl03\u Tabs1”;
console.log(id.charAt(id.length-1));
console.log(id[id.length-1])性能
今天是2020年12月31日,我在Chrome v87、Safari v13.1.2和Firefox v84上对MacOs HighSierra 10.13.6进行测试,以获得最后一个字符的大小写(最后N个字母的大小写结果,为了清晰起见,我将在中介绍)

结果 适用于所有浏览器

  • 解决方案D、E、F相当快或最快
  • 解决方案G、H最慢

细节 我在以下情况下执行2项测试:

  • 当字符串有10个字符时,您可以运行它
  • 当字符串有1M个字符时,您可以运行它
下面的代码片段介绍了解决方案 G(我的),H(我的)

//https://stackoverflow.com/questions/5873810/how-can-i-get-last-characters-of-a-string
// https://stackoverflow.com/a/30916653/860099
功能A(s){
返回s.substr(-1)
}
// https://stackoverflow.com/a/5873890/860099
职能B(s){
返回s.substr(s.length-1)
}
// https://stackoverflow.com/a/17489443/860099
职能C(s){
返回s.substring(s.length-1,s.length);
}
// https://stackoverflow.com/a/50395190/860099
职能D(s){
返回s.slice(-1);
}
// https://stackoverflow.com/a/50374396/860099
函数E(s){
返回s.charAt(s.length-1);
}
// https://stackoverflow.com/a/17489443/860099
函数F(s){
返回s[s.length-1];
}
//我的
职能G(s){
返回s.match(/.$/);
}
//我的
功能H(s){
返回[…s].pop();
}
// --------------------
//试验
// --------------------
[A,B,C,D,E,F,G,H].map(F=>{
console.log(
f、 名称+''+f('ctl03_Tabs1')
)})
此shippet仅显示性能测试中使用的函数-它本身不执行测试
const id = 'ctl03_Tabs1';
id.at(-1); // Returns '1'
let str = "hello";
console.log(str[str.length-1]);
// Output : 'o' i.e. Last character.