Javascript 如何获取字符串的最后一个字符
我有 使用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
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.