我有一个字符串,例如“Hello_World_1_x.txt”,我想取最后一个下划线之后和.txt之前的内容。.txt 和下划线一样始终存在,但可能有很多下划线。我使用 .split() 删除了最后 4 个字符,但我只想要 LAST 下划线之后的内容。到目前为止,我的正则表达式只给了我第一个下划线之后的内容。
问问题
67 次
5 回答
5
您可以使用标准字符串函数:
var result = s.substring(s.lastIndexOf("_") + 1, s.lastIndexOf("."));
于 2013-11-11T16:07:56.793 回答
1
试试这个正则表达式:
/_([^_.]*)\.txt$/i
使用String#match
:
var r = 'Hello_World_1_x.txt'.match(/_([^_.]*)\.txt$/)[1];
//=> x
于 2013-11-11T16:05:48.767 回答
1
于 2013-11-11T16:11:20.710 回答
0
你去:
编辑:误读字符串名称 - 现在更新:
function getLastValue(string, splitBy) {
var arr = string.split(splitBy);
return arr[arr.length-1].split(".")[0]
}
getLastValue("Hello_World_1_x.txt","_"); //"x"
于 2013-11-11T16:06:54.813 回答
0
var s = "Hello_World_1_x.txt";
var a = s.split(/[._]/);
console.log( a[a.length-2] ); // "x"
这表示,“将字符串拆分为句点或下划线,然后选择倒数第二部分”。或者:
var s = "Hello_World_1_x.txt";
var a = s.split(/[._]/);
a.pop(); var last = a.pop();
console.log( last ); // "x"
于 2013-11-11T16:08:09.023 回答