我有一个字符串test/category/1
。我必须在test/category/
之后获得子串。我怎么能这样做?
答案 0 :(得分:3)
您可以String.slice使用String.lastIndexOf:
var str = 'test/category/1';
str.slice(0, str.lastIndexOf('/') + 1);
// => "test/category/"
str.slice(str.lastIndexOf('/') + 1);
// => 1
答案 1 :(得分:2)
实际代码取决于您是需要完整前缀还是最后一个斜杠。仅限最后一次斜线,请参阅佩德罗的回答。对于完整前缀(和变量PREFIX):
var PREFIX = "test/category/";
str.substr(str.lastIndexOf(PREFIX) + PREFIX.length);
答案 2 :(得分:0)
var str = "test/category/1";
pre=test/category/;
var res = str.substring(pre.length);
答案 3 :(得分:0)
你可以使用indexOf()和slice()
function after(str, substr) {
return str.slice(str.indexOf(substr) + substr.length, str.length);
}
// Test:
document.write(after("test/category/1", "test/category/"))

答案 4 :(得分:0)
您可以使用以下代码段来获取
var str = 'test/category/1/4'
str.substring(str.lastIndexOf('/')+1)
答案 5 :(得分:0)
您可以使用str.substring(indexStart(,indexEnd)):
var str = 'test/category/1';
var ln=str.length;
alert(str.substring(ln-1,ln));
答案 6 :(得分:0)
var str = 'test/category/1';
str.substr(str.length -1);
答案 7 :(得分:0)
一个更完整的紧凑型 ES6 函数来为您完成工作:
const lastPartAfterSign = (str, separator='/') => {
let result = str.substring(str.lastIndexOf(separator)+1)
return result != str ? result : false
}
const input = 'test/category/1'
console.log(lastPartAfterSign(input))
//outputs "1"